He configurado varios conjuntos de restricciones en IB, y me gustaría alternar programáticamente entre ellos dependiendo de algún estado. Hay una constraintsAcolección de puntos de venta que están marcados como instalados desde IB y una constraintsBcolección de puntos de venta que se desinstalan en IB.
Puedo alternar programáticamente entre los dos conjuntos así:
NSLayoutConstraint.deactivateConstraints(constraintsA)
NSLayoutConstraint.activateConstraints(constraintsB)
Pero ... no sé cuándo hacer eso. Parece que debería poder hacer eso una vez viewDidLoad, pero no puedo hacer que funcione. Intenté llamar view.updateConstraints()y view.layoutSubviews()después de establecer las restricciones, pero fue en vano.
Descubrí que si establezco las restricciones en viewDidLayoutSubviewstodo funciona como se esperaba. Supongo que me gustaría saber dos cosas ...
- ¿Por qué tengo este comportamiento?
- ¿Es posible activar / desactivar restricciones desde viewDidLoad?