Термины
- TranslatesAutoresizingMaskIntoConstraints - система автоматически создает constraints на основе кадра представления и его маски.
- Anchor - это якорь Auto Layout.
- NSLayoutConstraint - ограничение (Constraints), определяющее отношения между объектами пользовательского интерфейса.
- addSubview - добавляем представление дочернего элемента к представлению родительского.
Практика 1
Создадим и закрепим кнопку
Шаг 1
Создаем кнопку "let button = UIButton()"
Шаг 2
Настройки кнопки делаем в методе viewDidLoad()
Поместим текст в кнопку "button.setTitle("Кнопка", for: .normal)"
Покрасим текст кнопки "button.setTitleColor(.black, for: .normal)"
Покрасим фон кнопки "button.backgroundColor = .green"
Шаг 3
Отключаем автоматическое создание constraints
button.translatesAutoresizingMaskIntoConstraints = false
Добавляем представление к родительскому View
view.addSubview(button)
Создаем ограничения и сразу активируем их
NSLayoutConstraint.activate([ ... ])
Практика 2
Создадим и закрепим несколько элементов
Если на экране больше одного View, то используем UIStackView()
В нашем случае будет два UIStackView() горизонтальный и вертикальный как показано ниже
Шаг 1
Создадим:
- Главный label "let mainLabel = UILabel()"
- Title label "let titleLabel = UILabel()"
- Кнопку "let button = UIButton()"
- Горизонтальный стек "let horizontalStack = UIStackView()"
- Вертикальный стек "let verticalStack = UIStackView()"
Шаг 2
Настройки делаем в методе viewDidLoad()
Шаг 3
Создаем ограничения (Constraints)
Помещаем Button и titleLabel в горизонтальный стек
Помещаем mainLabel и горизонтальный стек в вертикальный стек
Отключаем автоматическое создание constraints
verticalStack.translatesAutoresizingMaskIntoConstraints = false
Добавляем вертикальный стек к родительскому View
view.addSubview(verticalStack)
Создаем ограничения и сразу активируем их
NSLayoutConstraint.activate([ ... ])