「正方形」制約を作成する方法が見つかりません。つまり、Interface Builderで「幅が高さと等しい」ということです。そのような制約をプログラムで追加することは可能だと思います。IBでできることはありますか?多分私はそれを見ないだけですか?それはささいなことのようですが、それを見つけることができません。
「正方形」制約を作成する方法が見つかりません。つまり、Interface Builderで「幅が高さと等しい」ということです。そのような制約をプログラムで追加することは可能だと思います。IBでできることはありますか?多分私はそれを見ないだけですか?それはささいなことのようですが、それを見つけることができません。
回答:
Xcode 5.1b5を更新する
Ctrlキーを押しながらクリックしてビューからドラッグし、ポインターがビューの上にあるときに離します。「アスペクト比」を選択します。最初のアイテムと2番目のアイテムがビューである場所に制約が作成されます。
Xcode 5.1より前
幅/高さエディターには、別のプロパティに関連付けたり、比率を設定したりするためのフィールドがないため、これはできません。
したがって、Interface Builderで次のコードを表現することはできません。
CGFloat ratio = 1.0;
NSLayoutConstraint *constraint = [NSLayoutConstraint
constraintWithItem:myView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:myView
attribute:NSLayoutAttributeHeight
multiplier:ratio
constant:0];
constraint.priority = 1000;
[myView.superview addConstraint:constraint];
開始するには、ボタンからそれ自体に対角線上にコントロールをドラッグします。幅と高さの制約を追加できるコンテキストメニューが表示されます。それぞれをShift +クリック; 制約を追加したことを示すチェックマークが表示されます。(両方を追加する前にダイアログを誤って閉じてしまった場合は、問題ありません。ドラッグ手順を繰り返して、もう一方を設定してください):
最初に追加されたとき、これらの制約はボタンの現在の幅と高さを引き継ぐので、各制約を調整して、より適切な値にする必要があります。画像は正方形ですが、一度に1つずつ実行する必要があるため、両方の制約で同じ定数値を使用してボタンのサイズを均等に変更してください。制約をダブルクリックして、定数フィールドに小さい値を入力します。