我有一个表格视图,每个单元格都有自己的高度,因此不适合使用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