我一直在搜索,但我没有找到一种明确的方法来创建滚动到顶部加载更多或无限滚动,就像您在聊天中看到的那样,例如 whatsapp。 我正在尝试使用 scrollViewDidScroll 方法,根据当前页面再次加载数据
if self.tableView.contentOffset.y == 0 {
loadData(++currentPage, itemsPerPage: pageSize)
}
但是处理新数据和滚动位置的方式对我来说有点奇怪,所以主要问题是以有效的方式在我的 UITableView 顶部添加内容
//更新
在 ScrollViewDidScroll 方法中:
在 contentOffset.y 到达 0 位置后,我试图在前面添加新消息,因为它必须出现在 UITableView 的顶部,所以在索引 0 处插入消息是我找到的唯一方法。但是有一件事,在拉取新数据并重新加载 UITableView 后,滚动位置仍然显示在可见屏幕上,最后拉取的消息在顶部。这不是预期的行为,看看这张松弛的 channel 图片
当滚动达到适当的偏移量时,将拉取新数据,并将其显示在同一消息上,但现在看起来是滚动位置
所以,我认为在这种情况下重新加载整个 TableView 是个问题,但是您如何正确地拉取 tableView 中的数据以获得这种预期的滚动行为?
例如在 whatsapp 中是一样的
最佳答案
我建议在 UITableView 委托(delegate)的方法中进行预取
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
//your code ()
if indexPath.row == datasource.count - 3 {
loadMore()
}
}
这可以让您避免 ScrollView 的奇怪行为。
关于ios - 滚动到顶部加载更多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36070664/