Ios 从UIView拍摄屏幕截图(UIImage)花费的时间太长

Ios 从UIView拍摄屏幕截图(UIImage)花费的时间太长,ios,performance,uiimage,core-graphics,screenshot,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 renderI

我有下面的方法来拍摄一个速度太慢的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上,我现在有一个应用程序需要这种方法来复制拖放视图。此视图具有圆角,因此不不透明(如果我将“isOpaque”参数设置为“是,我发现了”,则不会有任何区别)。。。 另外,截屏的视图包含一个UITableView,其中包含相当复杂的条目

你对我如何提高截屏速度有什么建议吗。现在,对于稍大一点的tableview(可能有20个条目),大约需要1秒(!!!) 并且视图已经在屏幕上,正确呈现。。。所以我只需要把像素转换成UIImageView


我需要支持iOS 6+。

我使用同样的代码来截图一个非常复杂的视图。我认为你的瓶颈是使用大图像进行拖放。也许你可以调整UIImage的大小


在我的例子中,iPad2的屏幕截图性能大约为100毫秒

嗯,截图并没有那么大。大约320 x 500。。。我想我找到了我的瓶颈。。。看起来被截屏的视图有一层阴影和圆角。一旦我把它去掉,它现在快多了。。。我想我会在截图之后将这些属性应用到UIImages的ImageView,我会没事的。谢谢你的回答。。。