我有以下方法来截取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参数设置为YES,我认为这没有区别)... 截图的视图还包含一个UITableView,其中包含相当复杂的条目......
您对如何提高屏幕截图的速度有任何建议吗?现在,对于更大的桌面视图(可能是20个条目),它需要大约1秒钟(!!!) 并且视图已经在屏幕上,正确呈现...所以我只需要像素,但进入UIImageView ......
我需要支持iOS 6 +。
答案 0 :(得分:2)
我使用相同的代码来截取非常复杂的视图。我认为你的瓶颈是使用大图像进行拖放。也许你可以调整UIImage的大小。
在我的情况下,iPad2的性能大约是100毫秒的截图。