我遇到了一个烦人的问题。我正在做一个消息传递应用程序。在消息页面中,当用户滚动到顶部时,一旦最上面的单元格可见,它将加载更多消息以显示。因为在加载更多消息时, TableView 的位置在顶部(内容偏移量为 0),完成加载消息后,我调用 reloadData
并且 iOS 尝试维护相应的偏移量再次滚动到 TableView 的顶部并触发另一个加载。这就像一个无限循环,直到没有更多的消息要加载。
我试图在 reloadData
之后调用 scrollToRow
但没有成功。
所以任何可以在调用 之后保持表格 View 在相同位置的东西(即如果在加载之前,消息“a”在顶部,在加载之后,消息“a”仍然在屏幕顶部) reloadData
对我有用。
为此花了几个小时,所以我非常感谢任何帮助。谢谢
最佳答案
我不知道这是否对你有帮助,但你可以在重新加载时尝试这个-
if let indexPaths = tableView.indexPathsForVisibleRows {
tableView.reloadRows(at: indexPaths, with: .none)
} else {
tableView.reloadData()
}
关于iOS:reloadData 时将 UITableView 保持在同一位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49596163/