に設定translatesAutoresizingMaskIntoConstraints
する必要がありNO
ます。デフォルトでは、YES
(ストラットとスプリングから新しい自動レイアウトに移行するアプリの大部分を支援するために)に設定されています。
Xcodeのどこかに、デフォルトをからYES
に変更できる場所はありますNO
か?
または、ビューごとに手動で設定する必要がありますか?
に設定translatesAutoresizingMaskIntoConstraints
する必要がありNO
ます。デフォルトでは、YES
(ストラットとスプリングから新しい自動レイアウトに移行するアプリの大部分を支援するために)に設定されています。
Xcodeのどこかに、デフォルトをからYES
に変更できる場所はありますNO
か?
または、ビューごとに手動で設定する必要がありますか?
私はこの質問に遅れていますが、言及されたオプションはXcode 5および6にはまだないため、質問は依然として意味があります.
実際には、次のスクリーンショットのように、ストーリーボード (Interface Builder) でユーザー定義のランタイム属性を追加することにより、ビュー/コントロール/オブジェクトの任意のプロパティに値をいつでも設定できます。
また、 translatesAutoresizingMaskIntoConstraintsに対しても機能します。それで疑問は解決できました。
これは素晴らしい質問です - そして私は自分自身への答えを見つけようとしました. 悲しいことに、「クイックフィックス」はないようです。現在、Apple は Constraint-based layout Opt-in を検討しています - UIView
Class Referenceのセクションに名前を付けることさえ:
制約ベースのレイアウトへのオプトイン
しかし、そのオプトインはグローバルではありません。これは、Springs & Struts を Constraints に変えるだけでは、すべてがうまくいくとは限らないためだと思います。一部の UI 要素が破損するか、満足できない制約エラーが大量に発生します。
考えられる解決策の 1 つを考えることができます。自分で試したことはありませんが、すべてのオブジェクトを返すようにUIView
設定するカテゴリを作成できます。これが何を壊すのかはわかりませんが、グローバルに に設定されます。 UIView
NO
- (BOOL)translatesAutoresizingMaskIntoConstraints
translatesAutoresizingMaskIntoConstraints
NO
カテゴリについて詳しく知りたい場合は、ここでカテゴリの紹介をご覧ください。
ドキュメントによると、NO
Interface Builder を介してビューが追加された場合、このプロパティは自動的に に設定されます。
サブビューのサイズまたは位置を変更する必要がある場合。(BOOL)translatesAutoresizingMaskIntoConstraints
サブビューのフレームを設定する前にメソッドを使用してください。
[self.benchmarkButton removeFromSuperview];
[self.benchmarkButton setTranslatesAutoresizingMaskIntoConstraints:YES];
[self.benchmarkButton setFrame:CGRectMake(20, self.benchmarkButton.frame.origin.y+40, 260, 30)];
[self.benchmarksView addSubview:self.benchmarkButton];
Xcode 4.3以降ではデフォルト(AutoLayout)であるため、サブビューは制約と戦わないようにします。ありがとう