画像のグリッドを持つ UICollectionView があります。いずれかをタップすると、グリッドが開き、詳細を含むサブビューが表示されます。このような:
UICollectionViewLayoutAttributes を調整し、選択した項目の現在の行の下にあるすべてのセルの transform3D プロパティで変換を設定することにより、UICollectionViewLayout でグリッドを開きます。これは非常にうまく機能し、他のセルとは異なるサイズの別のセルをグリッドに挿入する最初の試みよりもはるかに優れたアニメーションであり、より簡単なアプローチです。
とにかく...ほとんどの場合は機能しますが、継続して使用すると、コレクション ビューに古い画像が表示されます。彼らはゴースト細胞のようなものです。クリックできません。コレクション ビューから適切に削除されていないようです。また、セルの上に配置されているため、タップが妨げられ、煩わしいだけです。このような:
これらの細胞がこれを行っている理由は何ですか?
編集:追加したいのですが、コレクションビューを非常に速くスクロールした場合にのみ発生すると思います。それでも発生するかどうかをテストするために、独自の UICollectionViewFlowLayout の置き換えを作成しました。します。
EDIT 2: 3D トランスフォームまたはレイアウトは、これとは関係ありません。UICollectionView のバグに違いありません。非常に高速にスクロールし、停止させてから、画面上のビューを照会するだけで悪用できます。セルの数が 2 倍になることがよくありますが、それらは互いに積み重ねられているため非表示になっています。上記の私の実装は、私が行った翻訳のためにそれらを明らかにします。
これにより、パフォーマンスも大幅に低下する可能性があります。
解決策については、私の回答を参照してください。