0

我有一个UICollectionViewdataSource支持NSFetchedResultsControllerUICollectionView单元格隐藏在controllerDidChangeContent后

内容更改发生后,单元格有时会隐藏。它们保留为收集视图的子视图,但是isHidden == true。我的代码没有显式隐藏单元格,并且isHidden的属性观察者从未被触发。

提示:我们的代码确实有纾困情况下它可以在cellForItem...willDisplayCell

回答

0

的问题是,有些时候,我们会想办法构建细胞中的要求,不能修改核心数据,并在返回单元格的后备版本之前修改CoreData。

cellForItemwillDisplayCell正在主线程上运行,我们使用performWithBlockAndWait来修改CoreData。

当集合视图仍在更新单元格时,这导致主线程上集合视图的dataSource发生更改。

简单的修复方法是使用performWithBlock而不是performWithBlockAndWait。现在,集合视图有机会在数据模型更改之前自行完成更新。

一个更好的解决方法是,当我们到达cellForItemwillDisplayCell时,这样的失败是不可能的。