UICollectionView
ユーザーが何らかのアクションを行うとき、下から特定の高さまで引き上げる必要があります。その新しい状態は完全にオプションであるため、コレクション ビューはそのように表示される直前に作成されます。下から上へのアニメーションは、NSLayoutConstraint のconstant
プロパティへの変更と[view layoutIfNeeded]
いくつかのアニメーション ブロックでの呼び出しを使用して実行されます。
問題は、そのようにすると、セルが望ましくない方法で表示されることです。セルは左上隅から指定されたサイズに拡大します。コレクション ビューが表示され、そのすべてのセルが最終的なサイズと外観でレイアウトされていることを望みます。
私は UIView のsetAnimationEnabled:
メソッドのようなものを認識していますが、それをどこでどのように使用すべきかを見つけることができないようです (それが正しい方法である場合)。
への呼び出しを含むアニメーション ブロックの直前にコレクション ビュー セルがビュー階層に追加されていることが原因だと思います[superview layoutIfNeeded]
。これにより、おそらく UIKit は、レイアウトへのこれらの変更もアニメーション化する必要があると考えるようになります。その場合、解決策はおそらくアニメーションから除外する方法に沿ったものであり、ビュー階層への特定の変更です。