サイズクラスを使用する制約に問題があります。コード内でサイズクラスの制約の定数を変更するが、ストーリーボードの値に戻す
ストーリーボード内では、ビューの幅制限をコンパクト幅とレギュラー幅サイズのクラスの異なる値に設定しています。 View Controller内で、私はviewDidLoad()
の中で定数をゼロに設定しているその制約への参照を持っています。
問題は、制約の定数がストーリーボードの値に戻ってしまうことです。viewDidAppear()
が呼び出された後を除きます。その後、制約定数はソースコード内で設定した値にとどまります。
viewWillAppear()
の範囲内で制約の定数をゼロに設定しても、ストーリーボードの値に戻すという制約が引き続き発生します。
私はストーリーボードから制約を削除してコード内で実行できますが、なぜこれが起こっているのか、そして制約を削除する必要がないストーリーボードから。
ビューのライフサイクルに関連しているようです。後でオーバーライドする際にコーディングしてみましたか?たぶん 'viewWillTransition(サイズ:CGSize、コーディネータ:UIViewControllerTransitionCoordinator)'?これは、IBを使用していない場合は、サイズクラスに対してコード化するオーバーライドです。 – dfd