gpt4 book ai didi

swift - 在 UITableView 中模拟 userScrolling

转载 作者:行者123 更新时间:2023-11-28 07:59:30 24 4
gpt4 key购买 nike

我正在开发一个聊天应用程序,最初我只从数据库中获取 100 条消息。当用户滚动时,我从数据库中获取消息并重新加载表格,以保持滚动位置,在重新加载表格后,手动设置内容偏移量,滚动位置工作正常但 tableview 滚动停止,因此用户感觉很糟糕。我不希望用户感觉到消息已被提取并且表格已重新加载。如何恢复停止的滚动。当用户手动滚动表格时,我使用 UITableView 的 panGestureRecognizer 属性获取方向和速度。

最佳答案

如果我没理解错的话,您希望在 TableView 中实现分页机制。当用户到达 ScrollView 的开头时,将获取下一页,这会带来颠簸的体验。我的建议是在用户滚动时针对某个恒定阈值测试 tableView.contentOffset.y。当 contentOffset.y 超过此阈值时,您将获取下一页。

您可以实现 UIScrollViewDelegate 方法 scrollViewDidScroll(_:) 以获取 contentOffset 并将其与您的阈值进行比较。这样,数据将在(在一定程度上)用户到达 tableView 的末尾之前获取。

private let fetchThreshold: CGFloat = 80
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y > scrollView.contentSize.height - scrollView.frame.height - fetchThreshold {
/* Fetch next page.
Remember to lock the process so the data won't be fetched multiple times. Use a boolean...
*/
}
}

关于swift - 在 UITableView 中模拟 userScrolling,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47049852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com