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

时间:2011-02-07 09:38:27

标签: multithreading ios uiview uiimage

我正在使用众所周知的模式从UIImage创建UIView

+ (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 个答案:

答案 0 :(得分:0)

最后我只是在另一个帖子中完成了,一切正常。