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 constraintsA
kolekcja outlet, z których wszystkie są oznaczone jako zainstalowane z IB oraz constraintsB
kolekcja 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, viewDidLayoutSubviews
wszystko działa zgodnie z oczekiwaniami. Chyba chciałbym wiedzieć dwie rzeczy ...
- Dlaczego otrzymuję takie zachowanie?
- Czy można aktywować / dezaktywować ograniczenia z viewDidLoad?