セルのデータソースではないため、UICollectionViewのリロードが完了した時点を知る必要があります。 ...)reloadDataメソッドを使用したUICollectionViewのリロードは、データのリロード直前に戻ります。
私は、このような私はダをリロードするとき、私はまた
[self.collectionView performBatchUpdates:^{
[self.collectionView reloadData];
} completion:^(BOOL finished) {
// notify that completed and do the configuration now
}];
しかしを使用してみました
[self.collectionView reloadData];
[self configure cells]; // BOOM! cells are nil
などのコードを試してみました私はクラッシュしています。これはreloadDataでlayoutSubviewsない時に追加された細胞によって引き起こされる特定の完了ハンドラを行う
私はsimmilar問題が発生したと思います。問題は、次の実行ループパス中に起こるlayoutSubview中にセルがロードされることです。残念ながら私はまだ解決策を見つけられませんでした。 UICollectionViewDelegateのような方法ではありませんなぜ私が疑問に思う: を - collectionView:willBeginDisplayingCell:forItemAtIndexPath: がありながら: - collectionView:didEndDisplayingCell:forItemAtIndexPath: あなたはすでに1つを解決しましたか? – lukewar
何が起こっているかは、バッチ更新ブロックでは、リロード中に発生する新しい行数とセクション数に対応する行/セクションの追加と削除を呼び出すことを期待しています。これが発生しない場合、アサーションがスローされます。 –