我有以下方法来拍摄速度太慢的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秒(!!!)
而且视图已经在屏幕上,可以正确呈现...所以我只需要Pixel即可进入UIImageView ...
我需要支持iOS 6+。
最佳答案
我使用相同的代码来截取一个非常复杂的视图的屏幕截图。我认为您的瓶颈正在为拖放操作使用大图像。也许您可以调整UIImage的大小。
就我而言,iPad2的屏幕截图性能约为100毫秒。
关于ios - 从UIView截屏(UIImage)花费的时间太长,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18016106/