要捕获屏幕截图,请使用以下代码
CGSize screenSize = [[UIScreen mainScreen] bounds].size;
UIGraphicsBeginImageContextWithOptions(screenSize, view.opaque, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
但它给出了错误>>:CGImageCreateWithImageProvider:无效的图像提供程序:NULL。
我不明白这是什么。
请帮忙!! ios9中如何截屏
最佳答案
解决方案 1:
新API自 iOS 7 以来已添加,这应该提供获取快照的有效方法
snapshotViewAfterScreenUpdates
:将 View 渲染为内容不可修改的 UIView
ressizedSnapshotViewFromRect:afterScreenUpdates:withCapInsets :
同样的事情,但具有可调整大小的插图
drawViewHierarchyInRect:afterScreenUpdates:
:如果您还需要绘制所有 subview (如标签、按钮...),则同样的事情
您可以使用为任何 UI 效果返回的 UIView,或者在需要导出时将其渲染到图像中,就像您所做的那样。
解决方案 2:
- (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;
}
关于ios - 如何在ios9中捕获 View 的完整屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34715561/