2011-02-07 46 views
4

我使用衆所周知的模式創建一個UIImageUIView製作的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相關的東西。

我錯了,這很好嗎? 或者 - 如果我是對的 - 可以做些什麼來提高性能?有沒有其他方法可以在不同的線程中使用,但是可以做同樣的工作?

非常感謝!

回答

0

最後,我只是在另一個線程做了,而且一切正常。