我想知道到底發生了什麼,當你不使用cellForRowAtIndexPath方法中的dequeueReusableCellWithIdentifier。 在我合作的一個項目中,我們有不同類型的自定義UITableViewCells,它們都出現在一個tableview中。所以我們在這裏填充所有應該顯示的TableCells的數組。這些數組不是很大(10-15個單元格),所以對於我們來說,即使沒有使用任何標識符dequeueReusableCellWithIdentifier,這種方式也可以工作。接下來的問題是如何在所有你可以使用標識符resp。在UITableView的單個部分中使用不同的單元格時,使用dequeueReusableCellWithIdentifier。這裏有人可以解釋,背景中究竟發生了什麼?問候尼爾斯UITableView使用dequeueReusableCellWithIdentifier還是不行?
1
A
回答
4
dequeueReusableCellWithIdentifier
是讓我想起Flyweight pattern。
由於單元的分配和實例化可能是一項昂貴的任務,因此使用此機制您只能創建第一個可見單元格,並稍後重新使用它們只是更改其內容。滾動動畫必須儘可能快以給用戶提供良好的體驗。
值得嗎?是的,它基本上是免費的,我們只需要注意一些舊數據可以仍然存在於一個新的可視化中,訣竅是始終正確實施方法-prepareForReuse()
,在這裏,最終可以在設置之前清除所有顯示的數據新的一個。
如果你想在同一節中使用不同的單元格是完全可能的,如果他們有不同的高度。您只需要創建不同的單元格標識符,每個單元格一個,並將它們與您的數據以某種方式聯繫起來。
我通常會映射要在struct(swift)或詞典中顯示的數據以及要使用的單元標識符的鍵。
如果您的細胞類型在滾動時代表自己,您應該使用dequeue
。
相關問題
- 1. UITableView dequeueReusableCellWithIdentifier是唯一的還是不是?
- 2. UITableview dequeueReusableCellWithIdentifier重複行
- 3. UITableView dequeueReusableCellWithIdentifier理論
- 4. 多選UITableView無dequeueReusableCellWithIdentifier
- 5. dequeueReusableCellWithIdentifier UITableView的兩次
- 6. UITableView dequeueReusableCellWithIdentifier:返回nil不止一次
- 7. 如何創建一個UITableView細胞,而不使用dequeueReusableCellWithIdentifier
- 8. 使用mysqli_change_user還是不行?
- 9. 我應該使用UISegmentedControl還是UITableView進行導航?
- 10. dequeueReusableCellWithIdentifier不起作用
- 11. iOS:在dequeueReusableCellWithIdentifier上的UItableview重複值
- 12. UITableView dequeueReusableCellWithIdentifier滾動時可能泄漏
- 13. UITableview dequeueReusableCellWithIdentifier和滾動冷凍問題
- 14. 使用dequeueReusableCellWithIdentifier時分配UItableView單元格標籤
- 15. 需要使用鎖還是不行?
- 16. c#「this。」使用還是不行?
- 17. dequeueReusableCellWithIdentifier是否適用於ARC?
- 18. 不想使用dequeueReusableCellWithIdentifier爲UITableViewCell的
- 19. dequeueReusableCellWithIdentifier不重複使用細胞
- 20. 從uitableview的iPad彈出窗口,使用泄露指示符還是不使用?
- 21. dequeueReusableCellWithIdentifier總是返回零(不使用故事板)
- 22. 是 - [UITableView reloadData]異步還是同步?
- 23. Xamarin UITableView Source是弱還是強?
- 24. 使用不同還是不是
- 25. dequeueReusableCellWithIdentifier永不返回
- 26. iPhone - dequeueReusableCellWithIdentifier用法
- 27. 如何在swift中用dequeueReusableCellWithIdentifier在UITableView中管理購物車?
- 28. 如何設置用於uitableview單元的reuseidentifier的nil值,而dequeueReusableCellWithIdentifier?
- 29. 我應該使用UITableView節頭還是靜態UITableViewCell?
- 30. 我應該使用UITableView還是UICollectionView來創建這個
這對你背景中發生的事情有影響嗎?我的意思是它,因爲你可以很容易地打破錶視圖單元格緩存,但你的問題似乎無關如何出列工作,更多關於如何使用標識符? – Wain
這是關於「重用」的一切。這是該方法名稱中的重要部分。它允許重用已經不在屏幕上的單元,而不是每次重新分配一個新單元。換句話說:保存CPU,內存(緩存系統)等。 – Larme
這是對的Wain。在上述情況下,我們不使用標識符,因爲我們根本不知道如何在一節中使用不同的自定義單元格。你有什麼建議嗎? –