Xamarin ios Как добавить ограничения в соответствии с superview - PullRequest
0 голосов
/ 06 июня 2018

Как мы можем добавить ограничение в соответствии с суперпредставлением:

У меня есть два подпредставления, которые должны составлять половину его суперпредставления. Как я могу добавить ограничение в соответствии с его суперпредставлением.

Суперпредставление: buttonContainer

Подвиды: phoneButton, greyVerticalLine, directionButton.

buttonContainer Superview: contentContainer.

Супервизор contentContainer: scrollContainer (UIScroll View).

Супервизор scrollContainer: 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)

   );

Ожидание: я хочу установить phoneButton и directionButton ширину половину buttonContainer.

Как мне получить доступ к ширине buttonContainer?

1 Ответ

0 голосов
/ 06 июня 2018

В 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% второму ряду.

Вы можете даже использовать постоянные числа для высоты вместо относительных значений.И вы можете сделать то же самое с определениями столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...