в Xamarin Как изменить рамку суперпредставления, когда ограничения добавляются в подпредставления программно? - PullRequest
0 голосов
/ 17 мая 2018

TopView: суперпредставление, подпредставления в topview: подтверждение изображения, подтверждениеInfoView, visitLabelContainer, noteTextLabel, dashboardButton.

contentContainer: суперпредставление TopView

Ограничения добавлены в 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)

);

Если я изменю высоту кадра topview, это ничего не изменит.Если я изменяю высоту границ вид сверху, это меняет фрейм 'у' на отрицательный.(половина высоты).

Может кто-нибудь предложить мне, как изменить фрейм в xamarin, когда ограничения включены.

Заранее спасибо.

1 Ответ

0 голосов
/ 18 мая 2018

Поскольку вы использовали autolayout для размещения элемента управления, вы должны изменить ограничение высоты, чтобы изменить высоту вида сверху:

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