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 constraintsA
raccolta outlet, tutte contrassegnate come installate da IB e una constraintsB
raccolta 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 viewDidLayoutSubviews
tutto funziona come previsto. Credo che mi piacerebbe sapere due cose ...
- Perché ricevo questo comportamento?
- È possibile attivare / disattivare i vincoli da viewDidLoad?