Mój projekt wymaga, aby przycisk był wyśrodkowany między dwoma innymi obiektami. Jeden z obiektów znajduje się w pionowym środku widoku (zielony). Drugi obiekt znajduje się w pewnej odległości od dolnej krawędzi (zielony). Teraz zadaniem jest wyśrodkowanie trzeciego obiektu (czerwonego) pomiędzy dwoma pozostałymi. Używam nowych ograniczeń xcode6 i mój widok jest w trybie WRegular hRegular. Byłoby to łatwe z kodem, ale staram się użyć storyboardu, aby to osiągnąć.Ograniczenia dla środka i obiektu między dwoma obiektami
Odpowiedz
Istnieje kilka podejść:
w IOS 9 najprostszym byłoby określenie pionową
UIStackedView
zdistribution
z „równym odstępów” iaddArrangedSubview
trzy okrągłe subviewsInną opcją w iOS 9 byłoby utworzenie dwóch
UILayoutGuide
(które reprezentowałyby dwa znaki zapytania na twoim obrazie) Dodaj je do współużytkowanego super-widoku za pomocąaddLayoutGuide
i zdefiniuj je tak, aby miały taki sam rozmiar jak jeden inny. Odpowiadająca VFL może wyglądać następująco:"V:|[greenView1(==100)]-[layoutGuide1]-[redView(==50)]-[layoutGuide2(==layoutGuide1)]-[greenView2(==greenView1)]|"
We wcześniejszych wersjach iOS, zamiast
UILayoutGuide
, można po prostu stworzyć dwa widoki „przestrzeń” (UIView
z jasnym tle, dzięki czemu nie są one widoczne), a następnie zdefiniować ograniczenie takie, że ich wysokości są identyczne, a następnie definiują wiązania wertykalne między pięcioma widokami (trzy okręgi i dwa widoki rozdzielające) ze stałą zerową.To może wyglądać następująco:
Zrobiłem te widoki „spacer” widoczny, aby zilustrować ten pomysł, ale oczywiście chcesz ustawić je w sposób przejrzysty, więc nie można zobaczyć ich w interfejsie użytkownika.
To jest logicznie równoważne podejściu
UILayoutGuide
w iOS 9, z wyjątkiem, że poglądy „spacer”UIView
tylko nosić trochę większe obciążenie niżUILayoutGuide
. Ale w wersjach iOS sprzed 9 jest to powszechne podejście do tego problemu.
Możesz to zrobić z jedną spacją. Przypnij górę elementu dystansowego do dolnej części górnego zielonego koła. Przypnij spód elementu dystansowego do górnej części dolnego zielonego koła. Przypnij pionowe centrum czerwonego koła do pionowego środka przekładki. –
Uzgodnione. Wiele sposobów na skórowanie kota. Używam pojedynczych spacerów, aby działały z więcej niż trzema okręgami bez radzenia sobie z mnożnikami (choć teraz możesz to zrobić). – Rob
Oba świetne rozwiązania! Podoba mi się, że w pierwszym rozwiązaniu czerwony przycisk nie musi być dzieckiem z widoków spacerów. Dziękuję Ci. –
Przyszedłem z najłatwiejszym podejściem.
Wystarczy wykonać następujące kroki:
- dodać widok między nimi dwa koła
- dodać swoją tylną i przednią przestrzeń. (w moim przypadku zero do podglądu)
- dodać górną i dolną przestrzeń z okręgów.
- teraz umieścić czerwone kółko w ostatnim czasie został dodany
- uczynić go poziomo i pionowo od centrum Alrignment Menu
dla iOS9 sprawdzić http://stackoverflow.com/a/33733753/ 1067147 – WINSergey