UICollectionView + AFNetworking + AutoScroll/Pagination?

Dea*_*ean 8 objective-c ios afnetworking uicollectionview swift

我使用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!, response:NSHTTPURLResponse!, error:NSError!) in
            NSLog("GET Image Error: " + error.localizedDescription)
        }
    )
    return cell
}
Run Code Online (Sandbox Code Playgroud)

小智 3

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

之后,您可以在底部插入带有某种活动指示器的附加单元格,并在AFNetworking通话结束后将其删除。