ユーザーが何らかのアクションを実行したときに、UICollectionView
を特定の高さまで引き上げる必要があります。その新しい状態は完全にオプションなので、コレクションビューはそのように表示される直前に作成されます。下から上へのアニメーションは、NSLayoutConstraintのconstant
プロパティへの変更と、アニメーションブロック内の[view layoutIfNeeded]
の呼び出しを使用して実行されます。UICollectionViewを表示するときにUICollectionViewCellアニメーションが表示されないようにする
問題は、そのようにすると、セルが望ましくない方法で表示されることです。つまり、左上隅から指定されたサイズに拡大されます。コレクションビューが表示され、そのセルのすべてが最終的なサイズと外観で既にレイアウトされていることを望みます。
私はUIViewのsetAnimationEnabled:
メソッドのようなことを認識していますが、どうすればどこで使用するべきかがわかりません。
この問題は、コレクションビューのセルが[superview layoutIfNeeded]
の呼び出しを含むアニメーションブロックの直前のビュー階層に追加されていることが原因であると考えられます。これにより、おそらくUIKitは、ののレイアウトをアニメーション化する必要があると考えるようになります。そうであれば、ソリューションはおそらく、アニメーションから除外する方法に沿ったものであり、ビュー階層への特定の変更です。
は私のアプリケーションでいくつかの類似したバグに実行を参照してくださいになります追加しました例えば、私がシミュレータで起動すると、アプリ全体の画面が左上隅から外側に広がり、ある種のテキストがスーパービューの左隅に「ジャンプ」してから、所定の場所にアニメートされます。同様に私は、アプリケーションのさまざまな部分でいくつかのアニメーションを拘束しています。この質問への答えを感謝します:) –