私は子供としてUIViewController
別のものに追加する を持っています。UIViewController
子が追加されると、親は を使用して子にフレームを設定しますchildVC.frame = ....
が、これは私の制約を混乱させます。
IB でこの問題を簡単に再現できます。を作成しUIViewController
、サイズを「フリーフォーム」に変更し、ステータス バーを非表示にします (視覚的に正しく見えるようにするためです)。(または何か)と制約を追加して、UIButton
両方が同じサイズになるようにします(下の画像を参照)
ここで、View Controller のトップ レベル ビューのサイズを変更し、何が起こるかを確認します。
それは私に対する私の制約を変えました。ボタンを大きくして、元の制約を保持したかったのです。画面で iPhone Retina 3.5/4.0 を切り替えたり、横向きから縦向きに変更したりすると、自動的に発生します。しかし、なぜビューのサイズを変更しないのでしょうか? これは、フリーフォームで物をレイアウトし、さまざまなサイズをテストするのに非常に苦労しています。
さらに重要なことに、VC の子を追加するときに in コードを設定するとまったく同じことが起こるのはなぜframe
ですか?どうすればそれを防ぐことができますか?