Mam UIView
i ustawiam ograniczenia za pomocą Xcode Interface Builder.
Teraz muszę UIView's
programowo zaktualizować tę stałą wysokości.
Jest funkcja, która działa jak myUIView.updateConstraints()
, ale nie wiem, jak jej używać.
swift
xcode
autolayout
nslayoutconstraint
ios-autolayout
Chris Mikkelsen
źródło
źródło
Odpowiedzi:
Wybierz ograniczenie wysokości z kreatora interfejsów i weź z niego wyjście. Jeśli więc chcesz zmienić wysokość widoku, możesz użyć poniższego kodu.
Method
updateConstraints()
jest metodą instancjiUIView
. Jest to przydatne podczas programowego ustawiania ograniczeń. Aktualizuje ograniczenia dla widoku. Aby uzyskać więcej informacji, kliknij tutaj .źródło
Jeśli masz widok z wieloma ograniczeniami, znacznie łatwiejszym sposobem bez konieczności tworzenia wielu gniazd byłoby:
W kreatorze interfejsów podaj identyfikator każdemu ograniczeniu, które chcesz zmodyfikować:
Następnie w kodzie możesz modyfikować wiele ograniczeń, takich jak:
Możesz nadać wielu ograniczeniom ten sam identyfikator, umożliwiając w ten sposób grupowanie i modyfikowanie wszystkich jednocześnie.
źródło
Zmień
HeightConstraint
iWidthConstraint
bez tworzeniaIBOutlet
.Uwaga: Przypisz ograniczenie wysokości lub szerokości w Storyboard lub pliku XIB. po pobraniu tego ograniczenia przy użyciu tego rozszerzenia.
Możesz użyć tego rozszerzenia, aby pobrać ograniczenie wysokości i szerokości:
Możesz użyć:
źródło
first(where: ...)
możesz użyć natychmiast zamiastfilter
+first
Przeciągnij ograniczenie do swojego VC jako IBOutlet. Następnie możesz zmienić skojarzoną z nim wartość (i inne właściwości; sprawdź dokumentację):
źródło
źródło
Jeśli powyższa metoda nie działa, upewnij się, że zaktualizujesz ją w bloku Dispatch.main.async {}. Nie musisz wtedy wywoływać metody layoutIfNeeded ().
źródło
Najpierw podłącz ograniczenie wysokości do naszego kontrolera widoku, aby utworzyć IBOutlet, jak pokazano poniżej
Następnie umieść poniższy kod w widoku, który załadował się lub w jakimkolwiek działaniu
jeśli znajduje się wewnątrz kliknięcia przycisku
źródło
Aby zaktualizować ograniczenie układu, wystarczy zaktualizować stałą właściwość i wywołać layoutIfNeeded po.
źródło
źródło