【发布时间】:2025-11-25 05:45:01
【问题描述】:
我有一个聊天消息应用程序,它会从最早到最新加载我的消息,然后自动滚动到底部,以便用户看到最新消息。
我只加载 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)
}
但是,同样的问题。有没有更好的处理方法?
【问题讨论】:
-
所以当它们滚动到顶部时,您会尝试加载更多消息吗?我会检查 scrollViewDidScroll 内的 contentOffset。检查 contentOffset.y - 如果它大于 10 或其他值,则加载新消息并将它们插入表格视图的顶部。
标签: ios swift uitableview uikit