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

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