ios – UICollectionView AFNetworking AutoScroll / Pagination?

我使用UICollectionView AFNetworking 2从Web服务异步加载图像.它工作得很好.但是,如何实现自动滚动(当用户到达页面底部或靠近页面时,调用API以获取更多单元格).

我见过很多例子,但似乎没有最好的做法.例如,一个教程建议使用scrollViewDidScroll,但每次滚动视图时都会调用它.这是正确的实施吗?

PS.我在Swift编写代码.

这是我的细胞创建代码

func collectionView(collectionView: UICollectionView!,cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! {

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier(cellIdentifier,forIndexPath: indexPath) as UICollectionViewCell

    let offer = self.offers[indexPath.row]
    var cellImageView = cell.viewWithTag(100) as UIImageView
    let requestURL = NSURLRequest(URL: offer.largeImageURL)
    cellImageView.setimageWithURLRequest(
        requestURL,placeholderImage:placeholderImage,success: {
            (request:NSURLRequest!,response:NSHTTPURLResponse!,image:UIImage!) in
            cellImageView.image = image
        },failure: {
            (request:NSURLRequest!,error:NSError!) in
            NSLog("GET Image Error: " + error.localizedDescription)
        }
    )
    return cell
}

解决方法

您可以在scrollViewDidScroll委托方法或collectionView:cellForItemAtIndexPath中执行此操作:(此处您可以检测到最后一个单元格正在加载).您需要做的是为AFNetworking调用创建一个包装器,以防止它几次加载数据(某种标志表明它已经加载).

之后,您可以在底部插入带有某种活动指示符的附加单元格,并在AFNetworking调用完成后将其删除.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...