从UIView制作UIImage,但不在主线程中

我正在使用众所周知的模式从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相关的东西。

我错了,这很好吗? 或者 – 如果我是对的 – 可以做些什么来提高性能? 有没有其他方法可以在不同的线程中使用,但做同样的工作?

非常感谢!

最后我只是在另一个线程中做到了,一切都运行正常。