gpt4 book ai didi

ios - View 层 drawInContext :UIGraphicsGetCurrentContext() not drawing

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:43:43 25 4
gpt4 key购买 nike

我正在尝试将 UIView 绘制到 UIImage 中。这是我正在使用的代码:

UIGraphicsBeginImageContextWithOptions(myView.bounds.size, YES, 0.f);
[myView.layer drawInContext:UIGraphicsGetCurrentContext()];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

我已验证 myView.bounds.size 有效。 myView 在屏幕上正确显示。但是,img 是完全黑色的(我已经尝试在 UIImageView 中显示两者并尝试将 JPEG 表示形式写入文件。)图像尺寸正确,色彩空间(在 JPEG 文件输出中)是 RGB,颜色配置文件是 sRGB 等,这意味着我们没有处理损坏的图像(在图像/位图数据本身有效的意义上)。我已经在 6.0 模拟器、7.0 模拟器和 7.0.6 设备上测试了这个案例,都是一样的。该层没有任何子层,我尝试将 masksToBounds 设置为 NO,但没有任何改变。

什么可能导致 View 的图层不绘制?

最佳答案

你需要改变:

[myView.layer drawInContext:UIGraphicsGetCurrentContext()];

到:

[myView.layer renderInContext:UIGraphicsGetCurrentContext()];

请注意,drawInContext: 默认情况下实际上不执行任何操作:

The default implementation of this method does not doing any drawing itself. If the layer’s delegate implements the drawLayer:inContext: method, that method is called to do the actual drawing.

Subclasses can override this method and use it to draw the layer’s content. When drawing, all coordinates should be specified in points in the logical coordinate space.

UIView 的层委托(delegate)设置为 UIView,但看起来 UIView 不一定绘制到提供的上下文。在这一点上有必要进行更多调查。

关于ios - View 层 drawInContext :UIGraphicsGetCurrentContext() not drawing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22286863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com