2013-03-01 8 views
73

Interface Builderで 'width = height'を意味する 'square'制約を作成する方法が見つかりません。このような制約をプログラムで追加することは可能でしょう。 IBでできることはありますか?たぶん私はそれを見ない?それは些細なようだが、私はそれを見つけることができません。Interface Builderの "Width is height"制約

+0

私は、Peter AmmonがWWDC'12の「Interface Builderに可能な限り依存する」と話していることを覚えています。なんて皮肉だな。 – DemoniacDeath

+4

ええ、レイアウト制約の実装にはまだいくつか欠けていると思います。彼らは私たちに多くのパラメータにアクセスできるようにしているようですが、多くのものにとって便利な乗数はありません。 – rdelmar

+0

しかし、それはますます良くなっています!私はオートレイアウトが3年前に導入されたことを意味し、私の視点からはサポートは今日は本当に良いです。 –

答えて

159

更新Xcodeの5.1b5

width equals height

Ctrlキー+クリックして、ビューからドラッグアンドポインタがビューの上にある間にリリース。 「アスペクト比」を選択します。最初のアイテムと2番目のアイテムがビューである制約が作成されます。 、したがって、

width constraint

:幅/高さエディタは、フィールドがないため


は、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]; 
+1

最新のアップデートをありがとう。 Xcode 5.1 beta 5では実際にIBでアスペクト比の制約を設定できますが、プロジェクトをコンパイルしようとすると、5.1_より前のXcodeバージョンで_Aspect ratio制約が発生します。最終的に5.1版を待たなければならないかもしれません。あなたのために、@ヤノ! –

+0

はい、XIBの変更は下位互換性がありません。 5.1で編集した場合は、より小さなバージョンに戻ることはできません。 – Jano

+0

xibをコンパイルできますか?私にとってはXcode 5.1 beta 5でも動作しません。 –

関連する問題