【发布时间】:2021-11-03 05:25:34
【问题描述】:
我想在 UICollectionView 中实现流畅的分页体验。这个想法很简单:当到达 collectionView 的最后一个单元格时触发 API 调用。
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if indexPath.row == dataGroup.data.count-1{
print("last cell visible" )
self.isPaginating = true
Service.shared.fetchData(page: self.page) { rawData, error in
if let error = error{
print("error while fetching app groups", error)
return
}
sleep(2)
if let data = rawData{
self.dataGroup?.data += data.data
DispatchQueue.main.async {
self.collectionView.reloadData()
}
self.page+=1
self.isPaginating = false
}
}
}
//returning cells
}
即使我不滚动 collectionView,if indexPath.row == dataGroup.data.count-1 也会变成 true 并触发 API 调用。可能是什么原因?
附言。我观察到data.count,当加载所有数据时分页停止。我只是将其删除以简化问题中的代码。
【问题讨论】:
标签: ios swift pagination uicollectionview