从 UIView 制作 UIImage 但不在主线程中
Posted
技术标签:
【中文标题】从 UIView 制作 UIImage 但不在主线程中【英文标题】:Make UIImage From UIView but NOT in the main thread 【发布时间】: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 相关的东西。
我错了吗,这很好吗? 或者 - 如果我是对的 - 可以做些什么来提高性能?有没有其他方法可以在不同的线程中使用,但效果相同?
非常感谢!
【问题讨论】:
【参考方案1】:最后我只是在另一个线程中完成了,一切正常。
【讨论】:
以上是关于从 UIView 制作 UIImage 但不在主线程中的主要内容,如果未能解决你的问题,请参考以下文章