Параметры макета в Xamarin.iOS
Существует два разных механизма управления макетом при изменении размера представления или поворота:
- Автоматическая настройка — инспектор автомасштабирования в конструкторе предоставляет способ задания
AutoresizingMask
свойств. Это позволит элементу управления привязаться к краям контейнера и (или) исправить их размер. Автоматическая автоматизация работает во всех версиях iOS. Более подробно описано ниже. - Автострока — функция, представленная в iOS 6, которая позволяет точно контролировать связи элементов управления пользовательским интерфейсом. Это позволит контролировать позиции элементов относительно других элементов в области конструктора. Этот раздел подробно описан в руководстве по конструктору Xamarin iOS с помощью автоматического макета .
Автоматическое изменение размера
Когда пользователь изменяет размер окна, например при смене устройства и изменении ориентации, система автоматически изменит размер представлений в этом окне в соответствии с правилами автосбора. Эти правила можно задать в C# с помощью AutoresizingMask
свойства UIView
панели свойств конструктора iOS, как показано ниже:
При выборе элемента управления это позволяет вручную указать расположение и размеры элемента управления, а также выбрать поведение автосбора . Как показано на снимке экрана ниже, можно использовать спринги и построки в элементе управления автосвертки для определения связи выбранного представления с родительским элементом:
Изменение весны приведет к изменении размера представления на основе ширины или высоты родительского представления. При настройке построка представление будет поддерживать постоянное расстояние между собой и родительским представлением на этом конкретном крае.
Эти параметры также можно задать в коде:
textfield1.Frame = new RectangleF(15, 277, 79, 27);
textfield1.AutoresizingMask = UIViewAutoresizing.FlexibleRightMargin | UIViewAutoresizing.FlexibleBottomMargin;
Чтобы проверить параметры автосбора, включите различные поддерживаемые ориентации устройства в параметрах проекта:
В коде позади можно использовать следующий код, который приводит к горизонтальному размеру двух текстовых элементов управления:
textview1.AutoresizingMask = UIViewAutoresizing.FlexibleWidth;
textfield1.AutoresizingMask = UIViewAutoresizing.FlexibleWidth;
imageview1.AutoresizingMask = UIViewAutoresizing.FlexibleTopMargin | UIViewAutoresizing.FlexibleLeftMargin;
Мы также можем настроить элементы управления с помощью конструктора. Выбор построек, представленных ниже, приведет к тому, что изображение остается выровненным по правому краю без обрезания внизу представления:
На этих снимках экрана показано, как элементы управления изменить размер или изменить положение при повороте экрана:
Обратите внимание, что текстовое представление и текстовое поле растягиваются, чтобы сохранить одинаковые левые и правые поля из-за FlexibleWidth
параметра. Изображение имеет гибкий верхний и левый поля, что означает, что сохраняет нижние и правые поля, сохраняя изображение в представлении при повороте экрана. Сложные макеты обычно требуют сочетания этих параметров для каждого видимого элемента управления, чтобы обеспечить согласованность пользовательского интерфейса и предотвратить перекрытие элементов управления при изменении границ представления (из-за поворота или другого события изменения размера).