我有一个TableView和1000个单元格。
我试图快速加载TableView。
如何加载25个第一个单元格,然后在滚动TableView中加载单元格?
答案 0 :(得分:0)
正如Eric在上面的评论中已经提到的那样,tableView / collectionView在其自身中进行了非常优化。 TableView / CollectionView仅加载可见索引路径范围内的单元格,然后重用相同的单元格。这就是你有
的原因tableView.dequeueReusableCell(withIdentifier: )
中的 cellForRowAtIndexPath
方法。
拥有所有这些,我相信你正在寻找一种方法来加载块中的数据,而不是一次性加载整组数据(比如Facebook的主页,加班,你向下滚动到达表的末尾)它加载了一些更多帖子)
如果这是你的要求,那就是Pagination。这需要服务器端和客户端的支持。
确保您确定每个响应将包含的最佳数据(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参数的数据数量
答案 1 :(得分:-1)
Eric的回答是正确的。但是,如果你真的想加载25个第一个单元格并在之后加载下一个单元格,你必须这样做 用这样的东西计算单元格高度
单元格高度=屏幕高度/要显示的单元格数 如果您有导航控制器,则单元格高度会有所不同。