有一个collectionView可能会根据数据加载大量的单元格。目前我的架构是viewDidLoad
(从dataSource获得前25个),然后在willDisplayCell
中(在25个集合中获取其余的数据源,直到达到速率限制)。问题是它似乎立即下拉了所有数据。除非用户正在滚动(即除非必须显示这些单元格),否则我不想为单元格下拉更多数据。我怎么能这样做?
我知道我需要使用cell
内的indexPath
和willDisplayCell
,但我不能把它拼凑在一起?
override func viewDidLoad() {
super.viewDidLoad()
getFirstPinsAndImages()
}
override func collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) {
if maxExceeded == false {
getRestOfPinsAndImages()
}
}
答案 0 :(得分:0)
我需要做的是将数据调用仅限于indexPath.row
willDisplayCell
(即即将显示的行)大于部分中的项目数(单元格)加载)少一些任意数字(给缓冲区加载时间):
override func collectionView(collectionView: UICollectionView, willDisplayCell cell: UICollectionViewCell, forItemAtIndexPath indexPath: NSIndexPath) {
if indexPath.row > (self.collectionView(collectionView, numberOfItemsInSection: 0) - 10) {
if maxExceeded == false {
getRestOfPinsAndImages()
}
}
}