このチェックボックスは、Interface Builder (IB) で使用できますが、OS X を対象とした Cocoa プロジェクトを開発している場合に限られます。iOS の場合、現時点では使用できません。プログラムでのみ設定できます。
私の理解では、iOS の自動レイアウト (および他の人はここで自由に提案してください) は、OS X で利用可能なものの完全な実装ではありません。
正直なところ、その後の発言を考えると、このチェックボックスはおそらく気にする必要はありません。OS X プロジェクトを Auto Layout にアップグレードする際には重要だと思いますが、一般的に iOS の場合、どちらか一方を混在させることはまずありません。つまり、File Inspector で Xib にチェックボックスをオンにして「Use Autolayout」にするか、しないかのどちらかです。
とはいえ、そのフラグをいじる必要があるユースケースが 1 つあります。これは、ビュー用にスタンドアロンの Xib ファイルを作成し、それを を使用してプログラムでロードする場合loadNibNamed
です。これを行うと、デフォルトで古いスタイルの Auto Resizing 制約が新しいスタイルの Auto Layout 制約に変換されます。通常、私は自分自身を追加したいので、そのフラグをザップに設定します。
myView.translatesAutoresizingMaskIntoConstraints = NO
とにかくそれはまた別の話です。
詳細については、次のリンクを参照してください。すでにご覧になっていることは間違いありません。
自動レイアウトの採用
私が言いたいことの 1 つは、最初に Auto Layout に苦労している場合 (そうでなければ人間ではないだろうということです)、私は Interface Builder を使い続けて、黄金ルール。私にとって最も重要なことは、あいまいさを嫌うということです。それは自然の真空のようなものです。不要な制約を削除する前に、必要な制約を追加してから、古い制約を消去する必要があります。
私が犯したもう 1 つの間違いは、自動レイアウトとフレームを混在させたことです。したがって、フレーム幅をチェックしてから、それを制約に適用するコードを実行します。悪い間違い。それは本当に涙で終わります。CGRect
自動レイアウトに入るときは、frame
、 などで何かをすることを本当に忘れることが不可欠です.
それでも我慢してください。IB のいくつかの単純なビューから始めて、実験してください。本当に、狂気への方法があります。
注目に値するもう1つのリンクは次のとおりです。
Cocoa Autolayout について知っておくべき 10 のこと