Xcode 11.3 beta 如何在 UITableview 中导航到顶部



切换选项卡时,我需要导航到表格视图的顶部。

func scrollToFirstRow() {
if let rowCount = self.dataSource?.tableView(self,numberOfRowsInSection: 0), rowCount > 0 {
let indexPath = IndexPath(row: 0, section: 0)
self.scrollToRow(at: indexPath, at: .top, animated: true)
self.setContentOffset(CGPoint(x: 0, y: 10), animated: true)
}
}

使用Xcode 10.1 和 iOS11,我在使用上述代码切换选项卡时导航到顶部。

但是tableview没有滚动到iOS 13和Xcode 11.3 Beta的顶部

只需调用此方法:

self.chatTable.setContentOffset(CGPointZero, animated:true)

self.chatTable.setContentOffset(.zero, animated:true)

将indexPath 值指定为第 0 行和第 0 节。这在iOS 13中对我来说效果很好

self.chatTable.scrollToRow(at: IndexPath(row: 0, section: 0), at: .top, animated: true)

更新:

您需要在表视图完成加载后调用它。以下是检查加载结束的方法:

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if let lastVisibleIndexPath = tableView.indexPathsForVisibleRows?.last {
if indexPath == lastVisibleIndexPath {
// call your scrollToFirstRow function here 
}
}
}

同样在你的视图中,只需调用tableView.reloadData((

通过在 DispatchQueue 上调用 scrollToFirstRow(( 来解决

相关内容

  • 没有找到相关文章

最新更新