2012-06-15 65 views
1

我有雜誌應用程序,我想知道如果有任何方式如何預載UIView和UIImage?UIView和UIImage預加載

我的看法結構:

MagazineView 
    -> pageView 
    -> imageContainerView 
     -> image 
    -> imageContainerView 
     -> image 
    -> textView 
    -> pageView 
etc... 

所以我的問題是 - 如何預裝圖像前視圖中可見?我想用3或5頁製作一些緩存,併爲加載視圖製作線程。有任何想法嗎?

回答

0

我認爲'預加載圖像'意味着在實際使用之前下載它們,這樣在顯示它們時不會有任何延遲。

你可以做的是首先使用[NSData dataWithContentsOfURL:]下載圖像,然後在你的NSData實例上使用writeToFile:atomically:將數據轉儲到文件中,或者將數據保存在NSData的堆中以備將來重用。

然後,當您需要它時,您可以使用[UIImage imageWithContentsOfFile][UIImage imageWithData:]來創建UIImage。

請注意,如果您將緩存保存爲文件,請將這些文件保存在緩存文件夾中,而不是保存在文檔文件夾中,或者將它們標記爲使它們在同步到iCloud時跳過的屬性,否則您的應用將被拒絕蘋果。

還請記住,下載這些圖像可能需要很長時間,超時或失敗。您應該在後臺線程中以不妨礙主線程的方式執行所有這些操作,並且有可視指示器指示應用程序未凍結,並且在下載失敗或緩存刷新的情況下具有後備功能(如果您保存將圖像加載到文件中)

+0

不,我已經得到所有圖像下載...當我的意思是預加載我的意思是繪製圖像,但在背景。 Thx回覆... –

0

在您將圖像加載爲J_D描述之後,只需將它們放入pageView並將其設置爲隱藏即可。每次你想切換頁面時,只需調用一些方法,即可預先載入新圖像並顯示已下載的圖像(將「隱藏」設置爲「否」);-)。 希望這會幫助你解決你的問題...