2010-01-26 80 views
2

我有一個表格視圖,所有單元格都有UITableViewCellStyleSubtitle, 所有單元格的圖像都是從服務器獲取的。如何有效地將圖像從服務器加載到tableView?

但是,這些圖像不會經常更改。

有人可以告訴我如何改善用戶體驗嗎?用戶每次向下滾動表格,似乎它都會在線檢查並再次下載圖像。

或者至少給我看一些可用於實現目標的選項。

感謝,

回答

4

Three20庫有一個ImageView子類,它接受一個URL到你的遠程圖像,並使用優秀的TTURLRequest/Caching機制來獲取圖像。它維護一個內存中和磁盤緩存,只會下載圖片,如果它們沒有被緩存或過期。您可以配置默認緩存到期時間或使用HTTP響應中的值。如果您使用TTTableViewController子類和相應的TTTableItem子類,則將免費獲得適當的圖像下載行爲。但是,沒有必要使用每三個組件來執行所需的操作。如果您要集成到現有代碼中,則可以創建自己的使用TTImageView而不是標準UIImageView的UITableViewCell子類。然後,在你的單元格配置方法中,你可以設置一個默認的佔位符圖像和一個URL來加載,並且幾乎可以處理其餘的部分。作爲性能優化,您還應該在tableview控制器中實現UIScrollView委託方法,以在滾動過程中暫停TTURLRequestQueue(查看TTTableViewController以瞭解如何完成此操作)。

+0

謝謝布賴恩,我很快就要對three20進行調查。這聽起來很有趣,但我還沒有看到太多的文檔;)無論如何,謝謝。 – 2010-01-28 10:56:04

+0

文檔的方式並不多,但TTURLRequestQueue和TTURLCache的代碼非常清晰。 – 2010-01-29 23:01:31

1

你可以嘗試以下

  • 一個創建一個字典,並使用圖像名稱爲重點

  • 緩存和重用緩存所有獲取的圖像在它整個UITableView單元格tableView:cellForRowAtIndexPath:

  • 如果它只是一個圖像重複加載一個外部tableView:cellForRowAtIndexPath:

  • 你寫的圖像每月都會改變 - 你可以保存圖像到磁盤,因爲它們被用來檢查圖像是否在後臺刻錄機上或在給定的日常間隔中更改重新下載圖像。 Brian Chapados的回覆看起來很有趣。

根據您的代碼可能有很多其他方式來改善圖像加載。希望有所幫助...

+0

嗨尼爾斯,也許我還沒有被清除在我的問題中,我的意思是圖像可能會改變一個月或三個月,但用戶每天使用我的應用程序。 – 2010-01-26 21:43:23

相關問題