簡體   English   中英

在iPhone中加載圖像的最佳方式是什么?

[英]What's the Best way for Lazy loading images in iPhone?

我想知道,延遲加載的最佳方法是什么。 對我來說,大多數應用程序我使用解析並從服務器獲取URL並將圖像放入表視圖。 所以我實現了延遲加載以提高應用程序的性能。 現在我想知道延遲加載圖像的最佳方法。 因為我已經使用了四種方式的延遲加載,

  • 從developerWorks.com延遲加載圖片

  • 實現了用於改善延遲加載的異步方法

  • 使用單獨的主線程來處理下載的圖像。

  • 已使用ECOImageLoadingDemo應用程序進行延遲加載。

但我已經使用上述四種方法來實現延遲加載。 但我想知道什么是延遲加載的最佳方法。 哪一個最適合性能和內存明智適合於此?

提前致謝。

問候,

Pugal

根據我的經驗,性能方面和內存方面的解決方案位於滑塊的兩端。 您可以在這兩者之間移動解決方案,但缺點是在性能方面具有最佳解決方案,通常意味着內存方式更差的解決方案,反之亦然。 我希望我解釋清楚這個:)

這是我如何處理延遲加載圖像的問題:

在我的應用程序中,我創建了一個名為GlobalImageProvider的實體。 所有圖像請求都通過此實體。 這樣我可以控制我用於下載的線程數量,並且我可以實現一個緩存系統(內存+本地磁盤),所有這些對應用程序完全透明並具有完全控制權。 通過控制緩存的大小,我可以控制應用程序的速度。 性能方面,沒有什么比已經在內存中創建了UIImage 在內存方面,您甚至可以選擇禁用緩存。

更重要的是,我甚至可以在應用程序運行時動態更改線程數,具體取決於我擁有的網絡質量。

為了發出在線請求,我正在使用NSURLConnection但我計划切換到別的東西,因為我讀過它泄漏了內存。


在視圖和控制器方面,我有一個AsyncImageView這僅僅是一個UIImageView ,它知道如何與工作GlobalImageProvider 它知道在加載時顯示活動指示器,並且可以處理來自GlobalImageProvider的響應。
如果你知道你想要的圖片的網址,所有你需要做的就是添加一個AsyncImageView到你的屏幕,並在請求GlobalImageProviderAsyncImageView的“處理”了的形象。

如果您不喜歡將數據與圖像視圖混合,可以在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM