Доступна опция автосохранения, пока вы не дадите какие-либо ограничения для компонента пользовательского интерфейса.
Xcode 8: Могу ли я использовать Constraints и autosizing как в Single View?
Ответ 1
Вы могли бы, но не должны
Вы можете использовать ограничения для некоторых представлений и авторизовать на других, но будьте осторожны, чтобы не смешивать их в одном представлении, поскольку это вызовет проблемы (информация об автосогласовании будет потеряна).
iOS заботится об автоматическом просмотре представлений, создавая ограничения, которые передают информацию об авторизации в механизм ограничений. Это поведение может быть включено или отключено с помощью подходящего имени translatesAutoresizingMaskIntoConstraints.
Вы можете попытаться добавить ограничения к представлению и по-прежнему его авторезистировать со старым поведением, установив это значение в true
, но я предлагаю вам использовать ограничения для каждого представления, так как он может делать все, что может сделать автосоздание, и гораздо больше.
Ответ 2
Да, вы можете (использовать смесь ограничений и авторезистировать на subviews в пределах одного представления) в Xcode 8. См.:
02:38 https://developer.apple.com/videos/play/wwdc2016/236/
С Xcode 8 свойство translatesAutoresizingMaskIntoConstraints
для каждого представления автоматически поддерживается интерфейсом Builder:
- По умолчанию, когда дочерний вид сначала добавляется, значение свойства равно true.
- Когда первое ограничение добавляется к дочернему представлению, значение автоматически устанавливается на false, а панель Индекс размера изменяется на представление Ограничения.
- Когда последнее ограничение удаляется из дочернего представления, значение свойства автоматически возвращается к истинному, а Инспектор размера возвращается к представлению Авторезистирование.
Ответ 3
- Если вы создаете представление программно, Xcode будет генерировать
constraints
для удовлетворения самогоautoresizing
(translatesAutoresizingMaskIntoConstraints
установлено наtrue
). Однако, если вы создаете представление в IB, Apple говорит:
Если вы добавили представления в Interface Builder, система автоматически присваивает этому свойству значение false.
- Чтобы отразить это, любое представление, добавленное в IB до Xcode 8, имеет ту опцию
autoresizing
hidd (или, по крайней мере, я не видел ее некоторое время там).
Но вот что:
- Поскольку Xcode 8, параметр видим (
translatesAutoresizingMaskIntoConstraints
установлен наtrue
), пока вы не добавите какое-либо ограничение, поэтому текст Apple выше не является правильным. Я полагаю.
Итак, в одном представлении вы не можете удовлетворять/использовать оба. (авторезистентность и ограничения)
В subviews вы можете использовать разные для каждого, но это будет беспорядок, и я не могу представить разумного использования. view- > subview (ограничения) и subview (авторезистирование)
Это также означает, что вы можете использовать, например. <Сильного > Вид (автоматическое изменение) → подтаблица (ограничения)