ios - 从 UIView 截取屏幕截图 (UIImage) 需要太长时间

标签 ios performance uiimage core-graphics screenshot

我有以下方法来截取 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/

相关文章:

ios - RSA 公钥生成——Swift

asp.net - iis 7.5 ASP.net 挂起请求

java - MultiMap 与 MultiValueMap

编译器涉嫌优化 while 循环

iOS 如何从邮件应用程序获取电子邮件联系人?

ios - 崩溃 : "Thread 1: EXC_BAD_ACCESS"?

ios - 将 UIImage 传递给 MKPinAnnotationView 时遇到问题

ios - 当图像移向 ScrollView 的边缘时如何使 ScrollView 滚动

iphone - 在 iPhone 上绘制 View 时的内存管理

iphone - 优化 UIScrollView 中的图像加载