从UIView中保存UIImage无法正常工作

时间:2013-01-02 05:23:31

标签: objective-c ios uiimage core-graphics

我正在尝试将UIView(及其子视图)的内容保存到UIImage中。

以下是我正在使用的代码:

+(UIImage *)imageWithView:(UIView *)view {
    UIGraphicsBeginImageContextWithOptions([view bounds].size, YES, 0);
    [[view layer] renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

它很棒......第一次。但是,如果我然后修改视图的子视图并再次调用此方法,我会在每个时间内获得旧的UIImage

据我所知,UIGraphicsEndImageContext()确实会将位图图像从堆栈中弹出。

如何考虑视图子视图的当前状态,使这个imageWithView:方法工作?

1 个答案:

答案 0 :(得分:-2)

我希望这会有所帮助:

UIGraphicsBeginImageContext(self.view.frame.size);
[testView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();