繁体   English   中英

Xamarin ios如何根据超级视图添加约束

[英]Xamarin ios How to add constraints as per 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)

   );

期望值:我想将buttonContainer的phoneButton和directionButton宽度设置为一半。

如何访问buttonContainer的宽度?

在Xamarin中,您可以执行类似于约束iOS布局的一件事,即使用带有自定义行或列定义的Grid。 考虑以下。

<Grid>
      <Grid.RowDefinitions>
           <RowDefinition />
           <RowDefinition />
      </Grid.RowDefinitions>
</Grid>

在网格内部使用Grid.Row =“ 1”和Grid.Row =“ 2”声明项目时,您会看到两者正好占据了网格高度的50%。 如果要以不同的方式划分空间,可以执行以下操作。

<Grid>
      <Grid.RowDefinitions>
           <RowDefinition Height="4*"/>
           <RowDefinition Height="6*"/>
      </Grid.RowDefinitions>
</Grid>

它将网格高度的40%分配给第一行,将60%分配给第二行。

您甚至可以为高度使用常数而不是相对值。 您可以对“列定义”进行相同的操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM