¿Cuándo puedo activar / desactivar restricciones de diseño?

He configurado varios conjuntos de restricciones en IB, y me gustaría alternar programáticamente entre ellos dependiendo de algún estado. Hay unaconstraintsA colección de salidas, todas las cuales están marcadas como instaladas desde IB, y unconstraintsB colección outlet, todas las cuales están desinstaladas en IB.

Puedo alternar programáticamente entre los dos conjuntos así:

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

Pero ... no puedo entendercuando Para hacer eso. Parece que debería poder hacer eso una vez enviewDidLoad, pero no puedo hacer que eso funcione. He intentado llamarview.updateConstraints() yview.layoutSubviews() después de establecer las restricciones, pero fue en vano.

Encontré que si establezco las restricciones enviewDidLayoutSubviews Todo funciona como se esperaba. Supongo que me gustaría saber dos cosas ...

¿Por qué tengo este comportamiento?¿Es posible activar / desactivar restricciones de viewDidLoad?

Respuestas a la pregunta(8)

Su respuesta a la pregunta