我正在尝试在演示应用中实现分页。我正在使用UICollectionView使用SDWebImage(Swift)从API显示大量图像。 API支持这样的分页:
"pagination":{
"total":355,
"totalPages":10,
"page":1,
"nextPage":2,
"nextPageUrl":"http://api..................?page=2" }
那么,我该怎么做呢?任何建议或示例代码?请帮忙!我是Swift的新人:)
答案 0 :(得分:0)
auto Pagination 可以使用委托方法:
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath){
//Load your data and reload them, when the indexPath isEqual to the indexPath of last object
}
或 ,您也可以在cellForItemAt
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell{
//Load your data and reload them, when the indexPath isEqual to the indexPath of last object
}
答案 1 :(得分:0)
保留下一个服务的网页索引,您的网页是pageNumber
var page = 0
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell{
print("page Num:\(page)")
}
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath){
if arrImagesData.count-1 == indexPath.row && arrImagesData.count%10 == 0{
getMoreImages(page)
}
}
func getMoreImages(page:Int){
//hit api
if api_success == true {
if self.page == 0 {
self.arrImagesData.removeAll()
}
self.arrImagesData.appendContentsOf(api_data)
self.collectionImages.reloadData()
self.page = self.page + 1
}
}