分页如何在iOS中运行? (迅速)

时间:2017-03-03 10:44:52

标签: ios swift pagination uicollectionview

我正在尝试在演示应用中实现分页。我正在使用UICollectionView使用SDWebImage(Swift)从API显示大量图像。 API支持这样的分页:

"pagination":{  
  "total":355,
  "totalPages":10,
  "page":1,
  "nextPage":2,
  "nextPageUrl":"http://api..................?page=2" }

那么,我该怎么做呢?任何建议或示例代码?请帮忙!我是Swift的新人:)

2 个答案:

答案 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
   }
}