我正在使用此方法将UIView
呈现为UIImage
:
+ (UIImage *)imageWithView:(UIView *)view {
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
生成的图像大小合适(如UIImage的size
属性所示),但其内容为纯黑色。那里传递的视图肯定包含一些图形,但它没有渲染。知道为什么吗?
答案 0 :(得分:1)
这是我用来捕获UIView图像的代码:
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(self.view.bounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[view.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
您的代码对我来说很好。你可以尝试交换我的看看是否有帮助,但我会引用它与你发布的代码分开。