gpt4 book ai didi

swift - 使用垂直无限滚动显示 UICollectionView 中的需求单元格

转载 作者:IT王子 更新时间:2023-10-29 05:49:24 25 4
gpt4 key购买 nike

我想知道如何使用 UICollectionView 实现按需加载的预期效果,就像在亚马逊应用程序中进行搜索时,它只返回一个项目数,直到滚动结束,然后是加载指示器,它设置为加载更多单元格并继续,直到显示搜索中的所有产品。

例如下图:

enter image description here

通常你必须在 numberOfItemsInSection 中设置数据源的项目数,这是怎么回事?设置项目总数然后延迟加载还是什么?

提前致谢。

最佳答案

使用像 crazy_phage 上面那样的 scrollViewDidScroll 函数,您可以观察到何时最终到达 CollectionView 的最后一个,然后您可以更新 numberOfRowInSections 并调用 reloadData 以下列方式:

class CollectionSampleViewController: UICollectionViewController {

private let reuseIdentifier1 = "Cell"
private var numberOfItemsPerSection = 9

override func viewDidLoad() {
super.viewDidLoad()
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}

override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
return 1
}

override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return numberOfItemsPerSection
}

override func scrollViewDidScroll(scrollView: UIScrollView) {
let offsetY = scrollView.contentOffset.y
let contentHeight = scrollView.contentSize.height

if offsetY > contentHeight - scrollView.frame.size.height {
numberOfItemsPerSection += 6
self.collectionView.reloadData()
}
}
}

当调用 reloadData 函数时,滚动保持在同一个位置并加载新数据。

在上面的代码中,您可以使用 Activity Indicator View 或您想要添加到代码中的任何其他内容。

关于swift - 使用垂直无限滚动显示 UICollectionView 中的需求单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28246394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com