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

UICollectionViewController halts scrolling when inserting new cells

我有一个不断滚动的 UICollectionView。当用户滚动时,控制器发出 API 请求新页面,通常在用户到达她的提要底部之前加载下一页。但是,当 UIViewController 通过 fetchedResultsController 更新新数据时,滚动会停止,即使项目不在屏幕上也是如此。这会导致用户出现故障的滚动体验。如何停止打断滚动?

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

编辑

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

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

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