【发布时间】:2016-07-04 09:33:14
【问题描述】:
我已经搜索了很多,但我没有找到一种明确的方法来创建 滚动到顶部加载更多或无限滚动,就像您在聊天中看到的那样,例如 whatsapp。 我正在尝试使用 scrollViewDidScroll 方法,根据当前页面再次加载数据
if self.tableView.contentOffset.y == 0 {
loadData(++currentPage, itemsPerPage: pageSize)
}
但是处理新数据和滚动位置的方式对我来说有点奇怪,所以主要问题是在我的 UITableView 顶部以有效的方式添加内容
//更新
在 ScrollViewDidScroll 方法中:
在 contentOffset.y 到达 0 位置后,我正在尝试添加新消息,因为它必须出现在 UITableView 的顶部,因此在索引 0 处插入消息是我发现这样做的唯一方法。但是有一件事,在拉取新数据并重新加载 UITableView 后,滚动位置仍然显示在可见屏幕上,最后拉出的消息在顶部。这不是预期的行为,请看这张松弛的频道图片
当滚动达到适当的偏移量时,新数据被拉出,屏幕显示在同一条消息上,但现在看起来是滚动位置
所以,我认为在这种情况下重新加载整个表格视图是问题所在,但是如何正确提取 tableView 中的数据以获得这种预期的滚动行为?
例如在whatsapp中是一样的
【问题讨论】:
-
我以前从未解决过这个问题。听起来很有趣。到底什么不适合你?您是否无法检测到用户何时滚动到顶部,或者您无法在视图顶部添加更多内容?
-
所以主要问题是以一种有效的方式添加内容,在我的 UITableView 的顶部
-
你发现了吗?我正在处理类似的问题..
标签: ios swift uiscrollview swift2 infinite-scroll