作者:小彩菜 | 来源:互联网 | 2023-05-24 10:37
我想知道如何使用UICollectionView
所需的加载效果,如在亚马逊应用程序中进行搜索时,它只返回一些项目,直到滚动结束,然后加载指示器设置为加载更多的单元格并继续,直到它显示的搜索中的所有产品.
像下面这样的图片:
通常你必须设置,numberOfItemsInSection
数据源的项目数,它是如何的方式?,你设置项目的总数,然后加载它懒惰或什么?
提前致谢.
1> Victor Sigle..:
使用scrollViewDidScroll
像crazy_phage这样的函数,你可以观察到最后到达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
它被称为滚动的函数保持在同一位置并且加载它的新数据时.
在上面的代码中,您可以使用活动指示器视图或您要添加到代码中的任何其他内容.