Muszę utworzyć trzy dynamiczne kolumny, każda ze stałym procentem całkowitej szerokości. Nie trzecie, ale różne wartości. Na przykład na poniższej ilustracji przedstawiono trzy kolumny: pierwsza ma 42% szerokości, druga 25%, a trzecia 33% szerokości.
W przypadku 600 pikseli w kontrolerze widoku będzie to odpowiednio 252, 150 i 198 pikseli.
Jednak dla wszystkich kolejnych rozmiarów wyświetlacza (np. IPhone 4 poziomy (szerokość 960) lub iPad 2 pionowy (szerokość 768) chciałbym, aby względne wartości procentowe były takie same (nie podane powyżej szerokości pikseli).
Czy istnieje sposób, aby to zrobić za pomocą Storyboardów (tj. Bez kodu)? Mogę to łatwo zrobić w kodzie, ale moim celem jest umieszczenie jak największej ilości tej logiki wyświetlania w Storyboard.
źródło
Ponieważ Apple wprowadza UIStackView , praca jest znacznie łatwiejsza.
Metoda 1: Używanie Nib / StoryBoard:
Musisz po prostu dodać trzy widoki w kreatorze interfejsów i osadzić je w widoku stosu
Wybierz stackView i podaj ograniczenie z wiodącym, końcowym, górną i równą wysokością za pomocą safeArea
Kliknij, aby obszar inspektora atrybutów i ustaw StackView w poziomie i rozkładzie, aby wypełnić proporcjonalnie
[ 3
Podaj ograniczenie trzech widoków z początkowym, końcowym, górnym, dolnym i odpowiednimi bokami.
Metoda 2: Programowo:
Wynik:
Działa w trybie poziomym i pionowym
Projekt demonstracyjny - https://github.com/janeshsutharios/UIStackView-with-constraints
https://developer.apple.com/videos/play/wwdc2015/218/
źródło
Myślę, że można to wyjaśnić bardziej szczegółowo, aby można je było łatwiej zastosować do dowolnej liczby widoków wymagających stałych procentowych układów w superviewie.
Widok z lewej strony
SuperView.Leading
SuperView.Height
Widoki pośrednie
SuperView.Height
left
go po prawej stronie sąsiadaWidok z prawej strony
left
go po prawej stronie sąsiadaright
doSuperView.Trailing
Wszystkie widoki
Top Layout Guide.Top
iTop Layout Guide.bottom
. W powyższej odpowiedzi należy zauważyć, że można to również zrobić, ustawiając równą wysokość sąsiedniego widoku.źródło