【发布时间】:2011-02-07 09:38:27
【问题描述】:
我正在使用众所周知的模式从UIView 创建一个UIImage:
+ (UIImage *) imageWithView:(UIView *)view
{
UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.opaque, [[UIScreen mainScreen] scale]);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
现在,我的问题是我有一个非常复杂的视图,上面有很多子视图,所以这个转换过程大约需要 3+(!!!) 秒。
我尝试将它分叉到另一个在后台运行的线程中,它确实提高了性能。
唯一的问题是,我记得,不允许在主线程中制作 UI 相关的东西。
我错了吗,这很好吗? 或者 - 如果我是对的 - 可以做些什么来提高性能?有没有其他方法可以在不同的线程中使用,但效果相同?
非常感谢!
【问题讨论】:
标签: multithreading ios uiview uiimage