我们如何根据superview添加约束:
我有两个子视图应该是其超视图的一半,我如何根据其超视图添加约束。
Superview:buttonContainer
子视图:phoneButton,greyVerticalLine,directionButton。
buttonContainer的Superview:contentContainer。
contentContainer的Superview:scrollContainer(UIScroll View)。
scrollContainer的Superview:UIView(主视图)。
使用以下层次结构添加约束:
buttonContainer.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();
buttonContainer.AddConstraints(
phoneButton.AtTopOf(buttonContainer),
phoneButton.AtLeftOf(buttonContainer),
phoneButton.Width().EqualTo(),
phoneButton.Height().GreaterThanOrEqualTo(42),
greyVerticalLine.AtTopOf(buttonContainer),
greyVerticalLine.ToRightOf(phoneButton),
greyVerticalLine.Width().EqualTo(1),
greyVerticalLine.Height().GreaterThanOrEqualTo(43),
directionButton.AtTopOf(buttonContainer),
directionButton.AtRightOf(buttonContainer),
directionButton.Width().EqualTo(),
directionButton.Height().GreaterThanOrEqualTo(42)
);
期望:我想将buttonButton和directionButton的宽度设置为buttonContainer的一半。
如何访问buttonContainer的宽度?
答案 0 :(得分:0)
在Xamarin中你可以做的一件事就是在iOS中约束你的布局就是使用带有自定义行或列定义的Grid。请考虑以下事项。
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
</Grid>
使用Grid.Row =&#34; 1&#34;声明项目时和Grid.Row =&#34; 2&#34;在网格中你会看到两者都占据了网格高度的50%。如果您想以不同方式划分空间,可以执行以下操作。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="4*"/>
<RowDefinition Height="6*"/>
</Grid.RowDefinitions>
</Grid>
将网格高度的40%分配给第一行,将60%分配给第二行。
您甚至可以使用常数来表示身高而不是相对值。您可以使用列定义执行相同的操作。