0

セクションのあるフロー レイアウトを使用するコレクション ビューがあります。ユーザーの操作によっては、特定のセクションのすべてのアイテムを 1 つの新しいアイテムに置き換えて、その変更をアニメーション化する必要があります (これにはインタラクティブなトランジションを使用できることを願っています)。基本的に - セクション内のセルは、アニメーションを使用して単一のセルに結合する必要があります。これは、2 つの異なるレイアウトとカスタム遷移クラスを使用することで可能ですか? より良い方法についてアドバイスをいただけますか?

4

1 に答える 1

0

この質問をする前に、UICollectionViews についてもっと読むべきだったかもしれません。このアルゴリズムを使用して、目的の効果を達成することができました

  1. 古いセクション データ配列を一時的な配列にコピーする
  2. データ ソース内の古いセクション データを、必要なオブジェクトが 1 つだけある新しい配列に置き換えます。
  3. 呼び出し[_collectionView performBatchUpdates:^{}てブロック内で、このセクションの既存のすべての項目を調べて呼び出します[_collectionView deleteItemsAtIndexPaths:itemsToRemove];
  4. 電話[_collectionView insertItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:0 inSection:indexPath.section]]];
  5. 電話[_collectionView reloadSections:[NSIndexSet indexSetWithIndex:indexPath.section]];

次に、セクションを元に戻す必要がある場合は、これらの手順を繰り返す必要がありますが、データソースのセクションを元のデータを含む一時配列に置き換え、単一の既存のアイテム (セル) を削除し、すべてのアイテム (セル) をセクションに挿入します。

于 2013-10-09T08:38:04.353 に答える