截屏仅使用UIGraphicsGetImageFromCurrentImageContext在iOS 8中附加白色图像

时间:2014-09-28 17:36:20

标签: ios objective-c

在iOS 6& 7这样可以正常工作,但在iOS 8中,当我附加图像时,它会截取一个白色屏幕截图。

奇怪的是,如果我取消,然后重试,它运作正常..

这是代码;

   [savingPhotoAlert dismissWithClickedButtonIndex:0   animated:YES];

    UIGraphicsBeginImageContext(self.view.bounds.size);

    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

    UIImage *screenshotImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

1 个答案:

答案 0 :(得分:2)

你取消什么?它是一种alertView吗?你必须在拍摄截图时指定(afterScreenUpdates = YES)。

- (UIImage *) screenshot {
    UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale);

    [self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:YES];

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}