Eu configurei vários conjuntos de restrições em IB e gostaria de alternar programaticamente entre eles dependendo de algum estado. Há uma constraintsA
coleção de outlet, todas marcadas como instaladas do IB, e uma constraintsB
coleção de outlet, todas desinstaladas do IB.
Posso alternar programaticamente entre os dois conjuntos da seguinte maneira:
NSLayoutConstraint.deactivateConstraints(constraintsA)
NSLayoutConstraint.activateConstraints(constraintsB)
Mas ... eu não consigo descobrir quando fazer isso. Parece que eu deveria ser capaz de fazer isso uma vez viewDidLoad
, mas não consigo fazer isso funcionar. Já tentei ligar view.updateConstraints()
e view.layoutSubviews()
depois definir as restrições, mas sem sucesso.
Descobri que, se definir as restrições, viewDidLayoutSubviews
tudo funcionará conforme o esperado. Acho que gostaria de saber duas coisas ...
- Por que estou obtendo esse comportamento?
- É possível ativar / desativar as restrições de viewDidLoad?