Eu configurei vários conjuntos de restrições em IB e gostaria de alternar programaticamente entre eles dependendo de algum estado. Há uma constraintsAcoleção de outlet, todas marcadas como instaladas do IB, e uma constraintsBcoleçã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, viewDidLayoutSubviewstudo 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?