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

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