【发布时间】:2015-09-10 23:51:25
【问题描述】:
在numberOfItemsInSection 被调用并返回一个非零数字之后,cellForItemAtIndexPath 不会被调用吗?来自完成块的reloadData 会影响这个吗?我遇到了一个问题,我试图通过UIAlertController 删除一个单元格,并且 UI 看起来很棒,但是当我在 UI 动画完成后转到reloadData 时,numberOfItemsInSection 被正确地调用了正确的号码元素数(之前的元素数减 1),但 cellForItemAtIndexPath 没有被调用,所以我的单元格不会被重新加载。关于为什么会发生这种情况的任何想法?
这是在Swift 1.2、XCode 6.4 上,我们将不胜感激任何帮助
只是为了提供更多信息,我用来删除单元格的方法看起来有点像:
self.collectionView.performBatchUpdates({
let indexPathCellToDelete = self.indexPath(feedCell)
self.collectionView.deleteItemsAtIndexPaths([indexPathCellToDelete])
}, completion:nil)
在完成块中进行第二次重新加载会改变什么吗?
【问题讨论】:
-
您是否正确连接了委托和数据源?
-
当然,在我删除某些内容之前,所有数据都正常显示,只有在删除集合视图中的项目后,该方法才不再被调用
-
尝试在主线程上重新加载。
-
试过了,没用。所以这不是主队列问题
-
可以手动尝试拨打
cellForItemAtIndexPath吗?
标签: ios swift uicollectionview reloaddata