Ios 如何在滚动表格视图中加载单元格?
我有一个桌面视图和1000个单元格 我正在尝试快速加载TableViewIos 如何在滚动表格视图中加载单元格?,ios,swift,uitableview,Ios,Swift,Uitableview,我有一个桌面视图和1000个单元格 我正在尝试快速加载TableView 如何在滚动的TableView中先加载25个单元格,然后再加载单元格?正如Eric在上面的评论中所提到的,TableView/collectionView本身已经进行了很多优化。TableView/CollectionView仅加载可见索引路径范围内的单元格,然后重用同一单元格。这就是为什么你有 tableView.dequeueReusableCell(标识符:)中的方法cellforrowatinexpath 有了这些
如何在滚动的TableView中先加载25个单元格,然后再加载单元格?正如Eric在上面的评论中所提到的,TableView/collectionView本身已经进行了很多优化。TableView/CollectionView仅加载可见索引路径范围内的单元格,然后重用同一单元格。这就是为什么你有
tableView.dequeueReusableCell(标识符:)
中的方法cellforrowatinexpath
有了这些,我相信您正在寻找一种方法,将数据分块加载,而不是一次加载整个数据集(如Facebooks home feed,当您向下滚动到tableView末尾时,它会加载更多的帖子)
如果这是你的要求,那就叫做分页。这需要服务器端和客户端的支持
确保确定每个响应将包含的最佳数据数(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个第一个单元,然后加载下一个单元,你必须 用这样的方法计算单元格高度 单元格高度=屏幕高度/要显示的单元格数
如果您有导航控制器,单元格高度将有所不同。tableview已经是这样工作的。它只会创建可见的单元格(还有更多),不会一次为整个对象数组创建单元格但也许你实际上不是在谈论tableview,而是在填充数组之前以分页方式加载数据?你是指分页机制吗?@alireza,你有解决方案吗?我希望我的tableview称重传感器通过如下方式加载: