我的UITableView中有大約50個自定義單元格。我想在從URL獲取圖像的單元格中顯示圖像和標簽。我想延遲加載圖像,以便在加載圖像時UI不會凍結。我嘗試在單獨的線程中獲取圖像,但是每次單元格再次可見時,我都必須加載每個圖像(否則單元格的重用會顯示舊圖像)諸如Facebook之類的應用程序僅針對當前可見的單元格加載圖像,并且一旦加載圖像,便不會再次加載它們。有人可以告訴我如何重復這種行為。謝謝。編輯當用戶快速滾動時,嘗試在NSMutableDictionary對象中緩存圖像會產生問題。我僅在完全停止滾動并清除內存緩存警告時才獲取圖像。但是該應用程序始終會收到內存警告(由于要緩存的圖像大小),并在重新加載之前清除緩存。如果滾動非???,則會崩潰。歡迎其他任何建議
3 回答

慕工程0101907
TA貢獻1887條經驗 獲得超5個贊
將圖像加載到后臺線程上仍然是一個好主意。如果您不想每次都重新加載它們,建議您設置一個NSMutableDictionary并將圖像存儲在其中。您可以使用一些唯一的標識符(例如行ID甚至是圖像的名稱)作為每個圖像的鍵。
加載單元格時,您將向NSMutableDictionary發送objectForKey:消息以檢索該特定單元格的圖像(基于其唯一鍵)。如果返回nil,則表示緩存中缺少該圖像,您需要背景圖像加載線程才能對其進行檢索。否則,您將獲取適當的圖像以供表格單元格顯示。出現內存警告時,您可以清除此圖像緩存,而不會產生不利影響(除了強制按需重新加載圖像外)。
- 3 回答
- 0 關注
- 628 瀏覽
添加回答
舉報
0/150
提交
取消