我是iOS UI開發新手。我陷入了下面的問題。Xamarin iOS Storyboard,子視圖半寬,然後是父視圖。查看
我想給父視圖的一半寬度爲2個子視圖。 (見圖)。我無法將乘數設置爲小於零。紅色和綠色子視圖的寬度應該相等,寬度應該是父視圖的一半。
我正在使用visual studio進行開發。
我是iOS UI開發新手。我陷入了下面的問題。Xamarin iOS Storyboard,子視圖半寬,然後是父視圖。查看
我想給父視圖的一半寬度爲2個子視圖。 (見圖)。我無法將乘數設置爲小於零。紅色和綠色子視圖的寬度應該相等,寬度應該是父視圖的一半。
我正在使用visual studio進行開發。
你應該能夠乘數設定爲1:2
,因爲它與比的作品。
我覺得這是Visual Studio中的iOS設計器中的一個錯誤,因爲乘數是一個浮點數。來自文檔here:
乘數:屬性2的值乘以該浮點數。在這種情況下,乘數是1.0。
在Xamarin Studio中,iOS的設計的比率被接受,而且1/2
0.5
:
而且在Xcode中:
它甚至被添加到源的xib/storyboard如下:
<constraint id="9" firstItem="3" firstAttribute="width" secondItem="8bC-Xf-vdC" secondAttribute="width" multiplier="1:2"/>
因此,您可以編輯.xib或.storyboard文件,但那不太理想。
來設定倍頻的替代,你可以設置:
RedView
LeadingSpace到superview.leadingspace
TrailingSpace到superview.CenterX
GREENVIEW
LeadingSpace到superview.CenterX
TrailingSpace到superview.trailingspace
這將做一樣的寬度設定到的所述寬度尺寸的一半上海華。
TBH Visual Studio和Xamarin工作室的iOS設計師與Xcode在增加複雜約束方面相比並不是很好(這並不複雜,但仍然失敗)。如果可以,我會建議嘗試在Xcode中進行編輯。
更新
如果您希望通過編程添加它們,在ViewDidLoad
補充一點:
public override void ViewDidLoad()
{
base.ViewDidLoad();
greenView.TranslatesAutoresizingMaskIntoConstraints = false;
redView.TranslatesAutoresizingMaskIntoConstraints = false;
View.AddConstraints(new NSLayoutConstraint[]{
NSLayoutConstraint.Create(redView, NSLayoutAttribute.Leading, NSLayoutRelation.Equal, View, NSLayoutAttribute.Leading, 1, 0),
NSLayoutConstraint.Create(redView, NSLayoutAttribute.Trailing, NSLayoutRelation.Equal, View, NSLayoutAttribute.CenterX, 1, 0),
NSLayoutConstraint.Create(redView, NSLayoutAttribute.CenterX, NSLayoutRelation.Equal, View, NSLayoutAttribute.CenterX, 1, 0),
NSLayoutConstraint.Create(greenView, NSLayoutAttribute.Leading, NSLayoutRelation.Equal, View, NSLayoutAttribute.CenterX, 1, 0),
NSLayoutConstraint.Create(greenView, NSLayoutAttribute.Trailing, NSLayoutRelation.Equal, View, NSLayoutAttribute.Trailing, 1, 0),
NSLayoutConstraint.Create(greenView, NSLayoutAttribute.Top, NSLayoutRelation.Equal, redView, NSLayoutAttribute.Top, 1, 0),
});
}
它將使像這樣一個觀點:
乘數不接受它。只接受整數值。你能否請你解釋一下。 –
我更新了一些額外的信息 –
我的答案謝謝你的很好的解釋。確實這是Visual Studio iOS Designer中的錯誤。我仍然有1個問題。我如何將trailingSpace設置爲superview.CenterX?沒有編輯約束的選項。我應該以編程的方式嗎? 順便說一句,我發現了另一種廉價的解決方案。 –