使用动态单元格高度时,如何将表格视图滚动到底部?
由于某种原因,此代码在这种情况下不起作用:
[self.tableView scrollRectToVisible:CGRectMake(0, self.tableView.contentSize.height - self.tableView.bounds.size.height, self.tableView.bounds.size.width, self.tableView.bounds.size.height) animated:YES];
谢谢!
编辑:使用@Hasiya的代码滚动到底部,对于你们中的某些人来说,也许就可以解决问题。
最终,我找到了答案。滚动到底部不起作用的原因(插入行和删除行也是错误的,正如我稍后发现的),是因为单元格高度为not properly estimated
。为了解决这个问题,请尝试在中返回近似估计estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath
。但是,如果您不能做到这一点(在大多数情况下您将无法做到),那么仍然有很好的解决方案:将单元格的高度存储在字典中,并estimatedHeight
在单元格被重用时返回高度表格视图已滚动)。我在另一个问题中找到了该解决方案,因此请去检查一下有关如何执行此操作的实际代码。(尽管可能很多人可以自己编写)
编辑:也许只需要滚动到底部即可解决此问题,但是我认为强烈建议这样做。如果不使用此方法来估算行高,则会遇到其他问题,例如滚动错误以及大量单元格的性能下降。
另外,您需要将此添加到 viewDidAppear
let lastItem = IndexPath(item: dataSource.count - 1, section: 0)
tableView.scrollToRow(at: lastItem, at: .bottom, animated: true)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句