如何在滚动表格视图中加载单元格?



我有一个表格视图和1000个单元格。

我正在尝试快速加载表格视图。

如何在滚动 TableView 中加载 25 个第一个单元格,然后加载单元格?

正如 Eric 在上面的评论中已经提到的,tableView/collectionView 本身就得到了很大的优化。TableView/CollectionView 仅加载可见索引路径范围内的单元格,然后重复使用同一单元格。这就是为什么你有

tableView.dequeueReusableCell(withIdentifier: )方法在cellForRowAtIndexPath.

有了所有这些,我相信您正在寻找一种以块的形式加载数据的方法,而不是一次性加载整组数据(例如 Facebook 的家庭提要,加班后您向下滚动以到达表格的末尾查看它加载更多帖子)

如果这是您的要求,则称为分页。这需要服务器端和客户端的支持。

确保确定每个响应将包含的最佳数据数(json 对象),并要求 Web API 开发人员实现分页逻辑。

最后在 iOS 上,实现,

override func scrollViewDidScroll(_ scrollView: UIScrollView) {
super.scrollViewDidScroll(scrollView)
let scrollViewHeight = scrollView.frame.size.height;
let scrollContentSizeHeight = scrollView.contentSize.height;
let scrollOffset = scrollView.contentOffset.y;
if (scrollOffset + scrollViewHeight == scrollContentSizeHeight)
{
//reached the end of scroll, download next set of data and update your data source
self.fetchNextSetOfData()
return
}
}

您可能必须发送服务器信息,例如从中获取数据的偏移量以及您期望作为 Web API 参数的数据数量

埃里克的回答是正确的。但是,如果您真的想加载 25 个第一个单元格并在之后加载下一个单元格,则必须 用这样的东西计算单元格高度

单元格高度 = 屏幕高度/要显示的单元格数如果您有导航控制器,单元格高度会有所不同。

最新更新