私は大規模なプロジェクトで AutoLayout を使い始めましたが、これにはかなり驚きました。ただし、回転とサイズのクラスに対応するようにプロジェクトを調整する必要があり、ビューを正しく動作させるのに大きな問題があります。
基本的な問題は、再び UICollectionViews を含むセルをUICollectionViews
使用していることです。デバイスが回転すると、ベース コレクション ビューはそのセルを正しく調整しますが、ネストされたコレクション ビューのすべてのセルは新しいサイズに自動的に調整されません。
調査の結果、次のようになります。
- が呼び出されたとき
viewWillTransitionToSize
、ベース コレクション ビューはまだ回転していません (予想どおり)。 - そのviewDidLayoutSubviewsが呼び出された後、ベースコレクションビューのサイズが回転しました-しかし、残念ながらそのセルはまだ-回転前の幅のままです
- セル内の
coordinator animateAlongsideTransition ... completion:{}
ブロックでもviewWillTransitionToSize
、新しい幅はまだありません。
上記は、新しい幅がまだわからないため、ネストされたコレクション ビューのセルにサイズを変更するように指示できる場所がないことを意味します。また、自動レイアウト システムはそれらを自動的に調整しません。
他の誰かが同じ問題を抱えているか、解決策を知っていますか?