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