У меня было (вероятно, неверное) предположение, что включение индикатора правильного поля в xib эквивалентно использованию UIViewAutoresizingFlexibleLeftMargin
внутреннего кода и так далее.
Итак, я привык думать по этому снимку:
Позже сегодня мне пришлось перепроверить и наткнулся на эту ветку .
А также яблочная документация, озаглавленная разделом с заголовком - «Автоматическая обработка изменений макета с использованием правил авторазмера» по этой ссылке: https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/CreatingViews/ CreatingViews.html
Итак, теперь у меня есть обновленное представление о том, как программная установка масок автоматического изменения размера будет эквивалентна настройкам XIB:
Сценарий 1 : Установка только (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)
эквивалентна:
В XIB?
Сценарий 2 : Установка (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)
в коде эквивалентна:
В XIB?
Верны ли мои 2 обновленных сценария? Я сейчас в моем понимании?
источник
Ответы:
Да, Интерфейсный Разработчик в некотором смысле «перевернул» (или UIView, в зависимости от того, как вы на это смотрите). Ваши приведенные "сценарии" верны.
источник
Да, вы цитировали вещи правильно. Кроме того, я согласен, что это выглядит немного задом наперед, поэтому я ценю ваш пост.
Возможно, вы
UIViewAutoresizingFlexibleMargins
захотите использовать макрос препроцессора, чтобы сделать поле UIView гибким во всех направлениях. Я поместил это в предварительно скомпилированный заголовочный файл, чтобы он был включен везде.Использование
UIViewAutoresizingFlexibleMargins
заставит элемент пользовательского интерфейса оставаться в центре, поскольку он НЕ будет обниматься ни с одной стороны. Чтобы элемент увеличивался / уменьшался со своим родителем, установите иUIViewAutoresizingFlexibleWidth
иUIViewAutoresizingFlexibleHeight
соответственно.Мне нравится использовать,
UIViewAutoresizingFlexibleMargins
потому что я могу позже ссылаться на это как:вместо того
Часто я вижу эти поля ИЛИ вместе на одной строке, как в примере выше. Просто трудно читать.
источник
Включение вертикальной / горизонтальной стрелки (называемой пружиной) внутри поля сделает высоту / ширину гибкой. Но включение внешней линии (называемой распоркой) сделает эту сторону негибкой / негибкой.
Включение внешней левой линии (левой стойки) не эквивалентно включению
UIViewAutoresizingFlexibleRightMargin
. Вместо этогоUIViewAutoresizingFlexibleRightMargin
= на , если правая стойка отключена, вне если правая стойка включена.Поначалу это довольно запутанно, но если вы внимательно посмотрите, есть разница в пружинах и стойках. Я не знаю, почему Apple сделала это, но для меня были случаи, когда им было проще пользоваться. А использование противоположных свойств в коде еще более запутанно.
источник
Swift 4 использовать это
Objective-C
источник