2010-09-03 52 views
8

我見過使用scrollviews和CATiledLayers的WDC2010會話104,這非常酷。但我不確定瓷磚圖像的生成。該示例具有已創建的青蛙瓷磚圖片。但是,如果我有一張照片應用程序,我正在拍攝自己的照片,我需要自己創建這些瓷磚,而且我不確定採用哪種最佳方法。爲CATiledLayer生成動態圖塊

最簡單的方法就是當我拍照並存儲它時,我會進行一些圖像處理並創建所需的所有圖塊。但這意味着對於每張照片,我都會存儲更多文件並使用更多文件空間。

就在我需要照片之前,我創建了一個臨時目錄。當我完成查看部分時,我可以刪除該臨時目錄。至少我只在查看照片時使用額外的文件空間。但我會擔心加載圖像以創建切片,以至於是否引入了對用戶來說顯而易見的延遲。

回答

1

您不需要保存平鋪圖像。基本上,您將基於正在顯示的矩形創建UIImage/CGImage。

我在這裏做了類似的工作,它工作得很好,獎金是它非常有效的記憶。我基於正在顯示的矩形動態生成CGImage(大圖像中的小圖塊),並且TiledLayer在轉儲矩形時將其從內存中移除。我從來沒有將CGImage保存到文件中。

這種方法的缺點是它在渲染中引入了延遲......對iPhone 3g上的遊戲不好。

+0

如何從UIImage的一部分生成CGImage的示例代碼?看來問題在於你必須將整個UIImage加載到多塊圖像幫助解決的內存中。謝謝! – Matt 2011-10-03 07:19:28