Я установил несколько наборов ограничений в IB, и я хотел бы программно переключаться между ними в зависимости от некоторого состояния. Есть constraintsA
коллекция розеток, все из которых помечены как установленные из IB, и constraintsB
коллекция розеток, все из которых удалены в IB.
Я могу программно переключаться между двумя наборами следующим образом:
NSLayoutConstraint.deactivateConstraints(constraintsA)
NSLayoutConstraint.activateConstraints(constraintsB)
Но ... я не могу понять, когда это сделать. Кажется, я смогу сделать это один раз viewDidLoad
, но я не могу заставить это работать. Я пробовал позвонить view.updateConstraints()
и view.layoutSubviews()
после установки ограничений, но безуспешно.
Я обнаружил, что если я установлю ограничения, viewDidLayoutSubviews
все будет работать так, как ожидалось. Думаю, я хотел бы знать две вещи ...
- Почему у меня такое поведение?
- Можно ли активировать / деактивировать ограничения из viewDidLoad?