Когда я могу активировать / деактивировать ограничения макета?

Я установил несколько наборов ограничений в IB, и я хотел бы программно переключаться между ними в зависимости от некоторого состояния. ЕстьconstraintsA коллекция розеток, все из которых помечены как установленные из IB, иconstraintsB сборник розеток, все из которых удалены в IB.

Я могу программно переключаться между двумя наборами так:

NSLayoutConstraint.deactivateConstraints(constraintsA)
NSLayoutConstraint.activateConstraints(constraintsB)

Но ... я не могу понять,когда сделать это. Кажется, я должен быть в состоянии сделать это один раз вviewDidLoad, но я не могу заставить это работать. Я пробовал звонитьview.updateConstraints() а такжеview.layoutSubviews() после установки ограничений, но безрезультатно.

Я обнаружил, что если я установлю ограничения вviewDidLayoutSubviews все работает как положено. Я думаю, я хотел бы знать две вещи ...

Почему у меня такое поведение?Можно ли активировать / деактивировать ограничения из viewDidLoad?

Ответы на вопрос(8)

Ваш ответ на вопрос