2009-08-12 104 views
0

我正在創建照片預覽應用程序 - 它包含一些照片。當我沒有大量的圖像時,一切都很好。該應用程序使用UIScrollView在圖像之間切換,基於PageControl代碼示例。iPhone:預覽照片

但現在我增加了更多的圖片和我有一些麻煩 - 它消耗了太多的內存和我的應用程序開始得到應用的警告時,我的圖片之間進行切換,它的工作速度太慢。

有沒有辦法來優化我的瀏覽器支持大量的圖像文件?我想要實現類似於iPhone Photos應用程序的功能 - 首先是加載低詳細圖像,然後切換到中等細節,最後細化爲高細節。這是如何完成的?

預先感謝您。

回答

3

如果內存問題最近才當你添加更多圖片到你的應用程序開始,那麼我會大膽地猜測,要麼你同時加載所有你的圖像到應用程序(這將吃掉內存有限快速)或者你的應用程序正在泄漏內存。

如果你同時加載所有的圖像,更有效的方法是隻加載當前圖像,並和之前所示的後顯示可能的影像。如果這是你已經採取的方法,檢查內存泄漏。

至於開始低分辨率和逐漸隨着分辨率的增加更清晰的圖像;我不知道蘋果公司提供的任何操作,但它應該是一個相當容易完成的過程。創建圖像的平鋪,並在平移/縮放時使用平鋪。當運動停止時,再次顯示高分辨率圖像。

iPhone上的照片應用程序採用此方法的原因可能是兩方面:一是平移和縮放低分辨率圖像時,應用程序的性能會更好;當您停止移動圖像時,您只需要看到高分辨率圖像。其次,設備上的電池會取較小的命中功率明智的應用程序執行以下工作時(即,搖攝/縮放低分辨率圖像不斷,而不是高分辨率的一個)。

0

一種解決方案可能會確保你只加載圖像當前頁,下一頁和前一頁。這樣,如果你有大量的圖像,你不會試圖同時將它們全部保存在內存中。

就低細節到高細節效果我不確定蘋果是如何做的,但你可能會加載低細節,然後在滾動視圖委託-scrollViewDidEndDeclerationg可能會啓動一個短計時器加載高分辨率的圖像,如果人留在圖像足夠長的時間。當滾動視圖再次開始移動時,它可能會失效。