Я встановив декілька наборів обмежень в IB, і я хотів би програмно переключатися між ними залежно від певного стану. Є constraintsA
колекція розеток, всі вони позначені як встановлені з IB, і constraintsB
колекція розеток, всі з яких видалено в IB.
Я можу програмно переключатися між двома наборами так:
NSLayoutConstraint.deactivateConstraints(constraintsA)
NSLayoutConstraint.activateConstraints(constraintsB)
Але ... я не можу зрозуміти, коли це зробити. Здається, я повинен бути в змозі зробити це один раз viewDidLoad
, але я не можу це працювати. Я намагався телефонувати view.updateConstraints()
і view.layoutSubviews()
після встановлення обмежень, але безрезультатно.
Я виявив, що якщо встановити обмеження, viewDidLayoutSubviews
все працює так, як очікувалося. Я думаю, я хотів би знати дві речі ...
- Чому я отримую таку поведінку?
- Чи можливо активувати / деактивувати обмеження з viewDidLoad?