在Xamarin中如何在以编程方式将约束添加到子视图时更改超视图的框架?

时间:2018-05-17 16:22:36

标签: ios xamarin autolayout mvvmcross

TopView:Superview, topview中的子视图:confirmImage,confirmationInfoView,visitLabelContainer,noteTextLabel,dashboardButton。

contentContainer:TopView的超级视图

Constrains添加到topview:

topView.AtLeftOf(contentContainer),
topView.AtRightOf(contentContainer),
topView.AtTopOf(contentContainer),
topView.Height().EqualTo(444),

添加到topView子视图的约束:

topView.AddConstraints(

confirmImage.WithSameCenterX(topView),
confirmImage.AtTopOf(topView, 27),
confirmImage.Width().EqualTo(94),
confirmImage.Height().EqualTo(94),

confirmationInfoView.Below(confirmImage, 28),
confirmationInfoView.WithSameCenterX(topView),
confirmationInfoView.Width().EqualTo(284),
confirmationInfoView.Height().EqualTo(116),

visitLabelContainer.Below(confirmationInfoView, 3),
visitLabelContainer.WithSameCenterX(topView),
visitLabelContainer.Width().EqualTo(138),
visitLabelContainer.Height().EqualTo(19),

noteTextLabel.AtBottomOf(topView, 29),
noteTextLabel.WithSameCenterX(topView),
noteTextLabel.Width().EqualTo(343),
noteTextLabel.Height().EqualTo(36),

dashboardButton.AtBottomOf(topView, 87),
dashboardButton.WithSameCenterX(topView),
dashboardButton.Width().EqualTo(347),
dashboardButton.Height().EqualTo(44)

);

如果我改变顶视图的框架高度,它不会改变任何东西。 如果我改变顶视图的边界高度,它将框架'y'更改为负。 (高度的一半)。

任何人都可以建议我在启用约束时如何更改xamarin中的帧。

提前致谢。

1 个答案:

答案 0 :(得分:1)

由于您已使用autolayout来放置控件,因此您应该修改 高度约束来改变顶视图的高度:

foreach (var constraint in contentContainer.Constraints)
{
    if (constraint.FirstItem == topView && constraint.FirstAttribute == NSLayoutAttribute.Height)
    {
        constraint.Constant += 174;
    }
}