微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift-如何获取第

如何解决Swift-如何获取第

我有一个UICollectionView,其中有2个部分具有不同的数据。当用户在某节中滚动20个单元格时,我正在尝试在该节中加载更多数据。

例如:

第0节和第1节都有20个单元格。

当我滚动查看第0节中的所有20个单元格时,应该将更多数据加载到该节中,最后在第0节中有40个单元格,在第1节中有20个单元格。

这是我所拥有的,但不能按预期工作:

func collectionView(_ collectionView: UICollectionView,willdisplay cell: UICollectionViewCell,forItemAt indexPath: IndexPath) {
        switch indexPath.section {
        case 0:
            if indexPath.row == popularMovies.count {
                print("Section 0,Row \(indexPath.row) - Loading more popular movies...")
            }
            break
        case 1:
            if indexPath.row == NowPlayingMovies.count {
                print("Section 1,Row \(indexPath.row) - Loading more Now streaming movies...")
            }
            break
        default: break
        }
    }
Section 1,Row 19 - Loading more Now streaming movies... <--- this is printed when hit cell 13 in section 0
Section 0,Row 19 - Loading more popular movies... <--- this is printed as expected when hit cell 20 in section 0

有可能吗?

解决方法

签出UICollectionViewDataSourcePrefetching,除了例如,它可以轻松用于实现滚动时加载更多数据。预加载要滚动到可见区域的单元格的图像。

例如:

extension MoviesViewController: UICollectionViewDataSourcePrefetching {
    func collectionView(_ collectionView: UICollectionView,prefetchItemsAt indexPaths: [IndexPath]) {
        let maxItem = indexPaths.map { $0.item }.max() ?? 0
        if maxItem >= self.popularMovies.count - 3 {
            // load new movies
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。