Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在滚动表格视图中加载单元格?_Ios_Swift_Uitableview - Fatal编程技术网

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

Ios 如何在滚动表格视图中加载单元格?,ios,swift,uitableview,Ios,Swift,Uitableview,我有一个桌面视图和1000个单元格 我正在尝试快速加载TableView 如何在滚动的TableView中先加载25个单元格,然后再加载单元格?正如Eric在上面的评论中所提到的,TableView/collectionView本身已经进行了很多优化。TableView/CollectionView仅加载可见索引路径范围内的单元格,然后重用同一单元格。这就是为什么你有 tableView.dequeueReusableCell(标识符:)中的方法cellforrowatinexpath 有了这些

我有一个桌面视图和1000个单元格

我正在尝试快速加载TableView


如何在滚动的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称重传感器通过如下方式加载: