插入新单元格时,UICollectionViewController会停止滚动

时间:2015-05-18 17:36:12

标签: swift uicollectionview restkit nsfetchedresultscontroller

我有一个无休止地滚动的UICollectionView。当用户滚动时,控制器对新页面发出API请求,通常在用户到达其源的底部之前加载下一页。但是,当UIViewController通过fetchedResultsController更新新数据时,即使项目不在屏幕上,滚动也会停止。这导致用户的毛刺滚动体验。如何停止中断滚动?

这就是我实施插入的方式:

https://stackoverflow.com/a/28878296/310385

修改

这对在主线程上执行暂停操作似乎不是问题。似乎滚动正在被主动停止。我运行了以下代码:

func updateCollection(){
    collectionView?.performBatchUpdates({ () -> Void in 
        //perform insertions
        println("Insertions started")
    }), 
    completion: {(completed) -> Void in 
        println("Completed")
    }
}

override func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
    println("End Decelerating")
}

并且它始终如一地打印出来:

Insertions started
End Decelerating
Completed

1 个答案:

答案 0 :(得分:1)

事实证明,当我下载新数据时,我有一个正在调用endRefreshing()的UIRefreshControl对象。这显然会停止滚动。