Подтвердить что ты не робот

Какова цель UIView autoresizingMask?

Прочитав о UIView autoresizingMask в SO и developer.apple.com, я пока не понимаю, в чем цель. Какая ситуация, когда настройка этого свойства необходима?

4b9b3361

Ответ 1

Да, часто необходимо установить его, если вы не хотите изменять размеры просмотров вручную. Обратите внимание, что это в основном полезно для subviews (т.е. Те представления, которые не занимают весь экран), а не основной вид вашего приложения.

Обычно просмотр может потребовать изменения размера, если:

  • устройство повернуто.
  • к представлению добавляется дополнительный вид (скажем, объявление), поэтому существующие подзаголовки имеют меньше доступного пространства.

Например, предположим, если у вас есть представление с двумя кнопками на нем, один в верхнем левом углу, другой в верхнем правом углу. Чтобы кнопки становились шире, когда представление переходило от портрета к пейзажу, вам нужно установить FlexibleLeftMargin правой кнопкой, FlexibleRightMargin на левую кнопку.

Изменить: autoresizingMask - это также первое, на что нужно обратить внимание, если вы видите странные отверстия или перекрытия при повороте устройства или добавлении нового subview. Довольно часто правильная настройка этих масок для подсмотров может дать вам красивый внешний вид в обеих ориентациях без необходимости выкладывать субвью вручную - но обычно это требует некоторых экспериментов.

Edit2: (так как это все еще собирает upvotes). Авторезистирующие маски теперь в основном заменяются "Auto Layout", что позволяет использовать гораздо более гибкие ограничения размеров и позиций просмотров. Говоря это, translatesAutoresizingMaskIntoConstraints все же иногда полезно для динамически добавленных просмотров.

Ответ 2

Цель состоит в том, что UIView корректно меняет размер и изменяет размер при изменении супервизора из-за изменения размера, изменения ориентации, отображения элементов управления редактирования в ячейках таблицы и т.д.