【发布时间】:2018-01-04 06:30:42
【问题描述】:
我有一个包含许多单元格的 UITableView。
其内容后面的每个单元格都有动态高度。
但是我注意到当我进入这个 viewController 时,UITableView 有时不会滚动最后一个 indexPath。
有任何想法来解决它。
tableView.estimatedRowHeight = 200.0
tableView.rowHeight = UITableViewAutomaticDimension
let bottomOffSet = CGPoint(x: 0, y: self.tableView.contentSize.height - self.tableView.bounds.size.height)
self.tableView.setContentOffset(bottomOffSet, animated: false)
PS:我不想使用“scrollToRow”,因为它会比“setContentOffset”多次触发 tableview 的函数“cellForRowAtIndexPath”。
tableView.scrollToRow(at: IndexPath(row: contents.count - 1, section: 0), at: .top, animated: animated)
【问题讨论】:
-
我不明白如何设置
tableView'scontentOffset将滚动到最后一个索引路径?你到底想达到什么目的。 -
@PGDev 就像一个聊天应用的聊天视图,我想滚动到最新消息。
-
你为什么不简单地使用
scrollToRow(at indexPath: IndexPath, at scrollPosition: UITableViewScrollPosition, animated: Bool)?这是实现这一目标的直接方式。是的,cellForRowAtIndexPath会因为tableViewCell's的可重用性而被多次调用,如果单元格尚不可见。每当重用单元格时,都会在每种情况下调用它。