[英]Infinite scrolling for scrolling up a tableView?
我有一个聊天消息传递应用程序,它可以将我的消息从最早到最新加载,然后自动滚动到底部,以便用户看到最新消息。
我只加载25条消息,然后当用户滚动到顶部时,我想上传接下来的25条消息。 事实证明,这确实很棘手,并且最终陷入无限循环。
这是我在做什么:
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
guard indexPath.row == 1 else { return }
fetchNextMessages(with: lastReference: lastMessage.reference)
}
在表格完成滚动到底部之前,它开始获取错误的下一组。 所以我尝试了这个:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
guard scrollView.contentOffset.y <= 0 else { return }
fetchNextMessages(with: lastReference: lastMessage.reference)
}
但是,同样的问题。 还有更好的方法来解决这个问题吗?
您应该注意,该方法被多次调用,在用新数据重新加载表后,应使fetchingNow = false
,此外,在加载新内容时,请勿滚动到最旧的内容并让用户滚动看到剩下的
func scrollViewDidScroll(_ scrollView: UIScrollView) {
guard scrollView.contentOffset.y <= 0 else { return }
if(!fetchingNow)
{
fetchNextMessages(with: lastReference: lastMessage.reference)
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.