0

我有一個UICollectionViewdataSource支持NSFetchedResultsControllerUICollectionView單元格隱藏在controllerDidChangeContent後

內容更改發生後,單元格有時會隱藏。它們保留爲收集視圖的子視圖,但是isHidden == true。我的代碼沒有顯式隱藏單元格,並且isHidden的屬性觀察者從未被觸發。

提示:我們的代碼確實有紓困情況下它可以在cellForItem...willDisplayCell

回答

0

的問題是,有些時候,我們會想辦法構建細胞中的要求,不能修改核心數據,並在返回單元格的後備版本之前修改CoreData。

cellForItemwillDisplayCell正在主線程上運行,我們使用performWithBlockAndWait來修改CoreData。

當集合視圖仍在更新單元格時,這導致主線程上集合視圖的dataSource發生更改。

簡單的修復方法是使用performWithBlock而不是performWithBlockAndWait。現在,集合視圖有機會在數據模型更改之前自行完成更新。

一個更好的解決方法是,當我們到達cellForItemwillDisplayCell時,這樣的失敗是不可能的。