Ho impostato più set di vincoli in IB e mi piacerebbe passare da uno all'altro a livello di codice a seconda di uno stato. Esiste una constraintsAraccolta outlet, tutte contrassegnate come installate da IB e una constraintsBraccolta outlet, tutte disinstallate in IB.
Posso passare a livello di programmazione tra i due set in questo modo:
NSLayoutConstraint.deactivateConstraints(constraintsA)
NSLayoutConstraint.activateConstraints(constraintsB)
Ma ... non riesco a capire quando farlo. Sembra che dovrei essere in grado di farlo una volta dentro viewDidLoad, ma non riesco a farlo funzionare. Ho provato a chiamare view.updateConstraints()e view.layoutSubviews()dopo aver impostato i vincoli, ma senza alcun risultato.
Ho scoperto che se imposto i vincoli in viewDidLayoutSubviewstutto funziona come previsto. Credo che mi piacerebbe sapere due cose ...
- Perché ricevo questo comportamento?
- È possibile attivare / disattivare i vincoli da viewDidLoad?