【问题标题】:Calling scrollToRow on UITableView doesn't work with AccessoryView在 UITableView 上调用 scrollToRow 不适用于 AccessoryView
【发布时间】:2017-09-07 23:01:53
【问题描述】:
我有一个简单的聊天界面,从服务器收到的最新消息显示为表格的最后一行,我需要滚动到这一行才能向用户显示消息。但是,我有一个用于输入新消息的 AccessoryView。
当我调用 scrollToRow(at:index) 时,屏幕滚动到最后一行,但它不会偏移内容以迎合附件视图 - 即使表格视图连接到附件视图的顶部。
任何想法如何解决这个问题?我的 accessoryView 是固定高度,所以也许我可以设置一个 tableview 偏移来覆盖它,但想要一个更优雅的解决方案。
【问题讨论】:
标签:
ios
swift
uitableview
accessoryview
【解决方案1】:
找到了解决办法。如果您将 scrollToRow 调用延迟一小段时间(这比呈现附件视图所需的时间稍长),则滚动将起作用。使用 0.3 秒的值是不够的,但使用 0.6 时效果很好。
DispatchQueue.main.asyncAfter(deadline: .now() + 0.6) {
self.tableView?.scrollToRow(at: pathToLastRow, at: .bottom, animated: animated)
}