Какова цель UIView autoresizingMask? - PullRequest
22 голосов
/ 07 сентября 2011

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

Ответы [ 2 ]

23 голосов
/ 07 сентября 2011

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

Как правило, может потребоваться изменение размеров представлений, если:

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

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

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

Edit2: (так как это все еще набирает голоса) Маски авторазмера теперь в основном заменены «Авторазметкой», которая позволяет намного более гибко ограничивать размеры и позиции видов.При этом translatesAutoresizingMaskIntoConstraints все еще иногда полезен для динамически добавляемых представлений.

4 голосов
/ 07 сентября 2011

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

...