私は子供としてUIViewController別のものに追加する を持っています。UIViewController子が追加されると、親は を使用して子にフレームを設定しますchildVC.frame = ....が、これは私の制約を混乱させます。
IB でこの問題を簡単に再現できます。を作成しUIViewController、サイズを「フリーフォーム」に変更し、ステータス バーを非表示にします (視覚的に正しく見えるようにするためです)。(または何か)と制約を追加して、UIButton両方が同じサイズになるようにします(下の画像を参照)

ここで、View Controller のトップ レベル ビューのサイズを変更し、何が起こるかを確認します。

それは私に対する私の制約を変えました。ボタンを大きくして、元の制約を保持したかったのです。画面で iPhone Retina 3.5/4.0 を切り替えたり、横向きから縦向きに変更したりすると、自動的に発生します。しかし、なぜビューのサイズを変更しないのでしょうか? これは、フリーフォームで物をレイアウトし、さまざまなサイズをテストするのに非常に苦労しています。
さらに重要なことに、VC の子を追加するときに in コードを設定するとまったく同じことが起こるのはなぜframeですか?どうすればそれを防ぐことができますか?