我的tableView由5-10個單元格組成,每個單元格包含圖像的滾動視圖。問題是,當一個單元格離開屏幕時,它將刪除所有圖像,然後在單元格返回到屏幕上時重新加載它們。我知道這是出於性能原因,但在這種情況下,它看起來很糟糕。有沒有辦法阻止細胞脫離屏幕時卸載?UITableView - 當他們離開屏幕時不要卸載單元格
回答
是的,當然。一般策略是自己預先加載所有對象。您可以在viewDidLoad
中執行此操作,並將它們卸載到viewDidUnload
中,將它們存儲在NSMutableArray
中,然後在您的tableView:cellForRowAtIndexPath:
實現中引用陣列中的相應索引。
你應該有一個很好的理由不採取蘋果的方式。用5-10個電池,聽起來不像你有一個很好的理由。也許你可以改善在NSOperationQueue中使用後臺線程的單元格加載。
這篇文章可能會有所幫助:
https://stackoverflow.com/questions/1408997/dynamic-uiimage-content-loading-in-uitableview-code
好吧,設想一個高度爲200px的行,在iPad上的屏幕上有10個圖像。當該行幾乎沒有離開屏幕底部時,它看起來很荒謬,所有圖像消失,然後當該行在屏幕上移回時(它們從服務器重新加載)重新出現。 – sol 2010-10-14 00:23:37
'NSOperationQueue'(單數)不適合工作,在這裏 – 2010-10-14 01:14:21
在這裏緩存圖像聽起來很明智。 – 2010-10-14 01:19:50
感謝的補充解釋。這非常有幫助。通過基於uitaleview單元的高度計算uitableview的高度,您可能可以避免出現問題,而不會禁用可重用單元。另外,如果您正在從網絡重新加載單元格,您肯定會從某些緩存中受益,如前所述。
- 1. android-從memeory卸載ImageView圖像,當它離開屏幕ScrollView內
- 2. UITableView要求在屏幕上不可見的單元格
- 3. jquery:如果他們離開屏幕,隱藏列表元素
- 4. 當單元格離開屏幕時,如何將數據保存在UICollectionView中?
- 5. 當他們離開框架時,UITableView隨機剔除細胞
- 6. 在加載時關閉屏幕時,uitableview單元格顯示錯誤的數據
- 7. 直到單元格位於屏幕頂部時才繪製UITableView單元格
- 8. 當元素使用jQuery離開屏幕時激活滾動條?
- 9. 卸載主屏幕時的Widget卸載時
- 10. UITableView單元格對齊不對齊到屏幕的右側
- 11. 當UITableView的單元格不加載時的調試策略?
- 12. 如何檢測自定義tableview單元何時離開屏幕?
- 13. 表格視圖單元僅自動版式時,離屏幕
- 14. 球離開屏幕
- 15. VBA - 離開當前單元格
- 16. libgdx離開屏幕和屏幕週期
- 17. UITableView - 展開單元格
- 18. 當我按下屏幕離子時,菜單不工作3
- 19. UITableView單元問題 - 滾動時不顯示關閉屏幕單元
- 20. 當更新更改單元格的單元格時UITableView崩潰
- 21. 不要在UITableView中重用單元格
- 22. UITableView不需要的單元格
- 23. 當在UICollectionView中選擇時將單元格展開爲全屏幕
- 24. 當元素不在屏幕上時?
- 25. 當UITableView滾動展開的單元格重疊時
- 26. 的UITableView編輯/ delate-單元格的內容超出屏幕
- 27. 如何滾動屏幕鍵盤的UITableView單元格?
- 28. objective-c uitableview何時分離單元格不合理
- 29. RepositoryItemCheckedComboBoxEdit在離開單元格時變空
- 30. 當用戶離開應用程序時卸載鍵盤鉤子
好的,將來看看這個。 – sol 2010-10-14 00:33:11
@sol注意內存使用情況;如果預加載所有單元格導致需要過多的內存,則您的應用程序可能會出現問題。請務必在更改之前和之後使用樂器測量應用程序的內存使用情況,以確保您的內存佔用合理。 – 2010-10-14 01:15:29