我有一個表格視圖,每個單元格都有自己的高度,因此不適合使用rowHeight
。相反,現在我正在使用let indexSet = NSIndexSet(index: 10)
和self.tableView.estimatedRowHeight = 75
。這意味着它調用單元上的sizeThatFits
函數來確定它的高度。這一切運作良好。UITableView具有動態單元高度在重新加載單元格後向上滾動時跳躍
問題是當你重新加載屏幕上的單元格時。例如向下滾動以顯示單元10,然後重新加載單元10,工作正常。但是當你開始回滾時,通過你已經看到的單元格,它將恢復到每個單元格的估計的高度,完全忽略了sizeThatFits
,所以當你滾動時跳轉。我不可能給出一個準確或「足夠好」的估計的高度,這樣跳躍就不會明顯,因爲我的細胞能夠顯示文本行或完整圖像 - 尺寸。
我這裏顯示這個效果:
我做了這許多不同的嘗試,使用heightForRowAtIndexPath,estimatedHeightForRowAtIndexPath ..等的混合物。我已經試過各種片關於StackOverflow的建議。似乎沒有任何工作。
我們已經附上一個非常簡單的示例項目,在那裏你可以自己嘗試:
https://www.dropbox.com/s/8f1rvkx9k23q6c1/tableviewtest.zip?dl=0
- 運行項目。
- 滾動到單元格10在視圖中。
- 等待長達5秒的單元重新加載(它變成紫色)。
- 向上滾動。
值得注意的 - 這並沒有發生如果當它重新加載該小區不是在視圖中。如果它高於當前滾動點以下的或,則一切按預期工作。
不要只發佈一個項目,並要求人們找出您的問題。用相關的代碼更新你的問題。 – rmaddy
我有一個'UICollectionView'類似的問題。這兩者是相似的,所以類似的方法可能對此有所幫助。發佈[答案在這裏](https://stackoverflow.com/a/45361410/6744473) – shoe