繁体   English   中英

无限滚动以向上滚动tableView吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM