2013-03-01 139 views
73

我無法找到在Interface Builder中創建'square'約束的方法,意思是'width equals height'。我想可以通過編程添加這樣的約束。 IB有什麼我可以做的嗎?也許我只是看不到它?這似乎微不足道,但我找不到它。Interface Builder中的「Width equal height」約束

+0

我記得Peter Ammon在WWDC'12中討論了「儘可能依賴Interface Builder」。多麼諷刺。 – DemoniacDeath 2013-03-02 23:41:25

+4

是的,我認爲佈局約束的實現還有一些缺失。看起來他們已經讓我們獲得了大部分參數,但不是乘數,這對於很多事情都是有用的。 – rdelmar 2013-03-03 00:40:41

+0

但它越來越好!我的意思是自動佈局不到3年前推出,從我的角度來看,現在的支持非常好。 – 2014-02-10 16:37:00

回答

159

更新的Xcode 5.1b5

width equals height

Ctrl +單擊並從視圖中拖動和釋放,而指針所在的視圖。選擇「長寬比」。它會在第一個和第二個項目是視圖時創建一個約束。


的Xcode 5.1

之前不能因爲寬度/高度編輯缺乏領域涉及到另一個屬性或設置的比率:

width constraint

因此,您不能在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比率限制。所以也許我們必須等待最後的5.1版本。你也一樣@Jano? – 2014-02-10 16:32:30

+0

是的,對XIB的更改不向後兼容。如果你用5.1編輯,你不能回到較小的版本。 – Jano 2014-02-10 17:37:14

+0

所以你可以編譯xib?即使對於我來說Xcode 5.1 beta 5也不行。 – 2014-02-10 23:22:22

相關問題