【问题标题】:UICollectionView cells hidden after controllerDidChangeContent在 controllerDidChangeContent 之后隐藏的 UICollectionView 单元格
【发布时间】:2017-05-05 03:05:24
【问题描述】:

我有一个UICollectionView,其dataSourceNSFetchedResultsController 支持。

单元格有时会在内容更改发生后隐藏。它们保留为集合视图的子视图,但 isHidden == true。我的任何代码都没有显式隐藏单元格,isHidden 的属性观察器永远不会被触发。

提示:我们的代码确实有一个救助案例,它可以修改 cellForItem...willDisplayCell 中的核心数据

【问题讨论】:

    标签: ios core-data uicollectionview nsfetchedresultscontroller


    【解决方案1】:

    问题在于,有时我们会尝试构造所请求的单元格,失败并在返回单元格的后备版本之前修改 CoreData。

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

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

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

    更好的解决方法是在我们到达cellForItemwillDisplayCell 时使此类失败成为不可能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多