我想在 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 调用。可能是什么原因?
PS。我观察到data.count加载所有数据时分页停止。我只是将其删除以简化问题中的代码。