我想從用戶可以在其上繪製或添加其他視圖的視圖中獲取圖像。隨着iPad1 & 2目前爲止一切正常。 但在iPad3上它像狗一樣運行。 我只是使用圖層renderInContext方法。iPad 3 renderInContext slow - 糟糕的渲染性能
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(self.viewDrawableViewContainer.frame.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(self.viewDrawableViewContainer.frame.size);
[self.viewDrawableViewContainer.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
我知道這可能是由這等於IPAD2一個, 的CPU引起的,但它需要大約1秒鐘。用戶繪畫或添加的越多,呈現時間就越長。有時長達5秒,這是真的不能接受的。 那麼有什麼方法可以提高性能嗎? 任何機會,也許設置一個較小的渲染質量 - 我不需要在最高的視網膜分辨率渲染...
我將不勝感激任何幫助!在此先感謝
你能預測到將會繪製哪些視圖嗎?如果是這樣,您可以在後臺執行繪圖並緩存結果,而不會凍結設備。 – 2012-07-11 14:46:41
好的謝謝你的提示,我可以在後臺創建一個圖片,但問題是,用戶可能會寫一些文本,然後點擊。然後,我將不得不在用戶交互之後立即執行繪圖,因爲視圖將在點擊之後關閉。但是,謝謝,也許我可以在關閉動畫執行時進行渲染。我會試一試......所以沒有其他方法可以提高渲染性能? – Alexander 2012-07-11 15:03:16
不幸的是,在基本上相同的CPU上攪動4次,因爲許多像素只是簡單地殺死了性能。用動畫掩蓋它是解決問題的好方法,也是蘋果如何去做的。 如果您允許用戶繪製一個視圖,您正在繪製什麼?是否沒有UIImage支持視圖,您可以立即撤出,而不是將視圖渲染到上下文中? – 2012-07-11 15:07:08