長時間実行されるジョブによって動的に更新されるコレクションビュー セルがあります。
ビューからセル (ジョブを表す) を削除できるようにしたいが、実行時間の長いジョブと、そのジョブの結果を表示する元のインデックス パスとの関係を保持したい。
使ってみました
self.collectionView performBatchUpdates:^{
[self.dataSource collectionview:self deleteItemsFromDataSourceAtIndexPaths:@[path]];
[self.collectionView deleteItemsAtIndexPaths:@[path]];
} completion:nil];
しかし、ジョブが関連する新しいインデックス パスへのすべての関係を更新する際に問題が発生しています。
また、セルに識別子をジョブに割り当て、ジョブ識別子でセルを検索しようとしましたが、スクロールするとジョブのセルが変更される可能性があるため、このアプローチは機能しません。
デリゲートメソッドでコレクションビューセルのサイズを0に設定するのが最も簡単だと思います
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
サイズをゼロに設定できませんでした
これを回避する方法。