我有一个简单的聊天界面,其中从服务器收到的最新消息显示为表格的最后一行,我需要滚动到该行才能向用户显示该消息。但是,我有一个AccessoryView用于键入新消息。

当我调用scrollToRow(at:index)时,屏幕将滚动到最后一行,但是它不会偏移内容以适应附件视图-即使表视图已连接到附件视图的顶部。

任何想法如何解决这一问题??我的annexView是固定的高度,所以也许我可以设置一个tableview偏移量来覆盖它,但是想要一个更优雅的解决方案。

最佳答案

找到了解决方案。如果将scrollToRow调用延迟一小段时间(这比显示附件视图所需的时间稍长),则滚动将起作用。使用0.3秒的值是不够的,但是使用0.6秒的值效果很好。

DispatchQueue.main.asyncAfter(deadline: .now() + 0.6) {
  self.tableView?.scrollToRow(at: pathToLastRow, at: .bottom, animated: animated)
}

关于ios - 在UITableView上调用scrollToRow不适用于AccessoryView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46099492/

10-12 01:15