コレクションビューの外にある別のビューにドラッグ/ドロップできるビューを含む多数のセルを含む UICollectionView があります。このプロセスは正常に機能します。ただし、ドラッグされたビューが新しい場所にドロップされると、スーパービューから削除する前に、ドラッグビューをフルサイズにスケーリングしてからゼロに戻すことで、ドロップをアニメーション化したいと考えています。これは、他のオブジェクトをドラッグしているときにアプリの他の領域で機能しますが、コレクション ビューに関係するのはこれだけです。
[UIView animateWithDuration:0.375
animations:^{ dragView.transform = CGAffineTransformMakeScale (1.0f, 1.0f); dragView.transform = CGAffineTransformMakeScale(0.0f, 0.0f); }
completion:^(BOOL finished) { [dragView removeFromSuperview]; } ];
完了ブロックを使用しないと、おそらくアニメーションが終了する前にビューが削除されるため、アニメーションは失敗します。ただし、完了ブロックを使用する場合、アニメーションが完了すると、コレクション ビューをスクロールする代わりに、ビュー コントローラーで使用されるパン ジェスチャ レコグナイザーに後続のパン ジェスチャ (コレクション ビューのスクロールに使用) が渡されます。その結果、コレクション ビューはアニメーション後に「ロックアップ」されたように見えます。完了ブロックを削除すると、その後ジェスチャー認識の問題は発生しませんが、アニメーションも機能しません。
アニメーションの後にコレクション ビューで userInteractionEnabled=YES を設定しようとしましたが、役に立ちません。
助言がありますか?ティア