Skonfigurowałem wiele zestawów ograniczeń w IB i chciałbym programowo przełączać się między nimi w zależności od stanu. Istnieje constraintsAkolekcja outlet, z których wszystkie są oznaczone jako zainstalowane z IB oraz constraintsBkolekcja outlet, z których wszystkie są odinstalowane w IB.
Mogę programowo przełączać się między tymi dwoma zestawami w następujący sposób:
NSLayoutConstraint.deactivateConstraints(constraintsA)
NSLayoutConstraint.activateConstraints(constraintsB)
Ale ... Nie wiem, kiedy to zrobić. Wygląda na to, że kiedyś powinienem to zrobić viewDidLoad, ale nie mogę tego zmusić. Próbowałem dzwonić view.updateConstraints()i view.layoutSubviews()po ustawieniu ograniczeń, ale bezskutecznie.
Zauważyłem, że jeśli ustawię ograniczenia, viewDidLayoutSubviewswszystko działa zgodnie z oczekiwaniami. Chyba chciałbym wiedzieć dwie rzeczy ...
- Dlaczego otrzymuję takie zachowanie?
- Czy można aktywować / dezaktywować ograniczenia z viewDidLoad?