Вступить в клуб →
лёгкаявопросUIKit и SwiftUI: экраны и состояние

Вью с констрейнтами уехало в угол, а консоль полна конфликтов Auto Layout

Вы верстаете карточку кодом:

let card = UIView()
view.addSubview(card)

NSLayoutConstraint.activate([
    card.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 16),
    card.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16),
    card.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -16),
    card.heightAnchor.constraint(equalToConstant: 120)
])

Карточка оказывается в левом верхнем углу нулевого размера, а в консоль сыплется «Unable to simultaneously satisfy constraints». Что забыли сделать?

  • Констрейнты активированы в viewDidLoad, где вью ещё не имеет финального размера; переносить активацию нужно в viewDidLayoutSubviews
  • Не выключено translatesAutoresizingMaskIntoConstraints у card
  • Задать ширину явной константой: без неё Auto Layout берёт нулевой intrinsicContentSize
  • Добавить карточку в иерархию после активации констрейнтов, а не до

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела