[英]What's the Best way for Lazy loading images in iPhone?
我想知道,延遲加載的最佳方法是什么。 對我來說,大多數應用程序我使用解析並從服務器獲取URL並將圖像放入表視圖。 所以我實現了延遲加載以提高應用程序的性能。 現在我想知道延遲加載圖像的最佳方法。 因為我已經使用了四種方式的延遲加載,
從developerWorks.com延遲加載圖片
實現了用於改善延遲加載的異步方法
使用單獨的主線程來處理下載的圖像。
已使用ECOImageLoadingDemo應用程序進行延遲加載。
但我已經使用上述四種方法來實現延遲加載。 但我想知道什么是延遲加載的最佳方法。 哪一個最適合性能和內存明智適合於此?
提前致謝。
問候,
Pugal
根據我的經驗,性能方面和內存方面的解決方案位於滑塊的兩端。 您可以在這兩者之間移動解決方案,但缺點是在性能方面具有最佳解決方案,通常意味着內存方式更差的解決方案,反之亦然。 我希望我解釋清楚這個:)
這是我如何處理延遲加載圖像的問題:
在我的應用程序中,我創建了一個名為GlobalImageProvider的實體。 所有圖像請求都通過此實體。 這樣我可以控制我用於下載的線程數量,並且我可以實現一個緩存系統(內存+本地磁盤),所有這些對應用程序完全透明並具有完全控制權。 通過控制緩存的大小,我可以控制應用程序的速度。 性能方面,沒有什么比已經在內存中創建了UIImage
。 在內存方面,您甚至可以選擇禁用緩存。
更重要的是,我甚至可以在應用程序運行時動態更改線程數,具體取決於我擁有的網絡質量。
為了發出在線請求,我正在使用NSURLConnection
但我計划切換到別的東西,因為我讀過它泄漏了內存。
在視圖和控制器方面,我有一個AsyncImageView
這僅僅是一個UIImageView
,它知道如何與工作GlobalImageProvider
。 它知道在加載時顯示活動指示器,並且可以處理來自GlobalImageProvider
的響應。
如果你知道你想要的圖片的網址,所有你需要做的就是添加一個AsyncImageView
到你的屏幕,並在請求GlobalImageProvider
與AsyncImageView
的“處理”了的形象。
如果您不喜歡將數據與圖像視圖混合,可以在GlobalImageProvider和AsyncImageView之間添加ViewController。 他獲得了圖像響應並將其放入ImageView中。
這就是它,希望它對你有所幫助。
您可以在Bonus:KVO for Cell Images一節中查看Peepcode的優秀教程
http://peepcode.com/products/iphone-view-controllers-part-ii
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.