我有以下方法来截取 UIView 的屏幕截图(UIImage),但速度太慢
+ (UIImage *)imageWithView:(UIView *)view
{
CGSize size = view.bounds.size;
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
[view.layer renderInContext:context];
UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext()
return image;
}
在我的 iPad 上,我现在有一个应用程序需要此方法来复制拖放 View 。该 View 是一个带有圆角的 View ,因此不是不透明的(这与我发现将 isOpaque 参数设置为 YES 没有什么区别)... 此外,屏幕截图的 View 包含一个 UITableView,其中包含一些复杂的条目...
您对我如何提高屏幕截图的速度有什么建议吗?现在,对于更大一点的表格 View (可能有 20 个条目),大约需要 1 秒(!!!) 并且 View 已经在屏幕上,正确渲染...所以我只需要像素到 UIImageView...
我需要支持 iOS 6+。
最佳答案
我使用相同的代码来截取非常复杂的 View 的屏幕截图。我认为你的瓶颈是使用大图像进行拖放。也许你可以调整 UIImage 的大小。
就我而言,iPad2 的屏幕截图性能约为 100 毫秒。
关于ios - 从 UIView 截取屏幕截图 (UIImage) 需要太长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18016106/