我正在創建小磁貼並存儲在磁盤上並顯示給用戶。這是我做這個當前進程:將UIVIew渲染爲後臺線程上的圖像的安全方法?
- 創建一個代表我想顯示屏幕
- 獲取從視圖控制器的觀點,並從中渲染圖像
- 將其保存到磁盤的UI一個視圖控制器和稍後在屏幕上顯示它
當我試圖訪問viewcontroller的視圖時,我崩潰了。當我試圖在網上進行研究時,我在後臺創建視圖是否安全時遇到了相互矛盾的結果。我讀到的UIGraphicsGetCurrentContext調用應該是線程安全的,但也許不訪問後臺線程上的UIView?我正在爲iOS 4及以上版本編寫應用程序。下面是我使用的代碼(瓦是視圖 - 控制):試圖訪問區塊(EXC_BAD_ACCESS)的.view屬性時發生
CGSize size = CGSizeMake(20.0f, 30.0f);
UIGraphicsBeginImageContext(size);
[tile.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
崩潰。整個過程是在後臺渲染視圖以防止鎖定UI,因爲要處理的瓦片很多。
有沒有安全的方法來做到這一點?
你有沒有找到一個很好的解決方案呢? – 2012-11-01 06:18:32
我遇到了同樣的崩潰。根據[Apple的文檔](http://developer.apple.com/library/ios/#qa/qa1714/_index.html),'renderInContext'可以在不同的線程上使用。然而,事實上,它神祕地崩潰。有沒有人找到解決這個問題的辦法? – Howy 2013-07-16 20:54:36
你有沒有找到解決方案,馬克? – 2017-09-22 11:16:00