iPhone:渲染视图后获得的UIImage是纯黑色

时间:2011-07-24 21:25:30

标签: iphone cocoa-touch

我正在使用此方法将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属性所示),但其内容为纯黑色。那里传递的视图肯定包含一些图形,但它没有渲染。知道为什么吗?

1 个答案:

答案 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;

您的代码对我来说很好。你可以尝试交换我的看看是否有帮助,但我会引用它与你发布的代码分开。