【发布时间】:2014-03-09 19:17:37
【问题描述】:
我正在尝试将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,颜色profile 是 sRGB 等,这意味着我们没有处理损坏的图像(从某种意义上说,图像/位图数据本身是有效的)。我已经在 6.0 模拟器、7.0 模拟器和 7.0.6 设备上测试过这个案例,都一样。该层没有任何子层,我尝试将masksToBounds 设置为NO,但没有任何改变。
什么可能导致视图层不绘制?
【问题讨论】:
-
您认为什么样的内容/层?有孩子吗?
-
它是
UIView的常规CALayer。不,它没有任何子层。
标签: ios cocoa-touch cgimage cgimageref uigraphicscontext