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
- 1. Wykrywanie kolizji Java między dwoma obiektami Shape?
- 2. Wysyłanie wiadomości między dwoma obiektami JPanel
- 3. Schemat DTO: Najlepszy sposób na kopiowanie właściwości między dwoma obiektami
- 4. Uzyskiwanie różnicy między dwoma obiektami o tych samych właściwościach
- 5. Rysowanie strzałki na płótnie HTML5 między dwoma obiektami
- 6. Jak uzyskać wszystkie punkty między dwoma obiektami Point?
- 7. jak obliczyć różnicę między dwoma obiektami Zend_Date, w miesiącach
- 8. W ulotce, jak obliczyć odległość pikseli między dwoma obiektami LatLng?
- 9. Potrzebuję obliczyć upływ czasu między dwoma obiektami daty
- 10. Uzyskaj liczbę dni między dwoma różnymi obiektami DateTime
- 11. Udostępnianie obiektu między dwoma wątkami i głównym programem
- 12. Ustawianie ograniczenia brzegowe dla Draggable obiektu
- 13. Różnica między niezmiennymi i skutecznie niezmiennymi obiektami?
- 14. Zamieszanie między obiektami DTO (linq2sql) i Class!
- 15. Przenieść Konstruktora, przenieść wektor między dwoma obiektami za pomocą std :: move?
- 16. Łączenie DQL między niepowiązanymi obiektami?
- 17. Obróć kamerę wokół środka obiektu wpf
- 18. Przeciągnij i upuść między dwoma RecyclerView
- 19. Przekazywanie danych między obiektami w C#
- 20. Biblioteka JavaScript dla obiektów opartych na węzłach i relacji między obiektami?
- 21. Różnica między obiektami podlegającymi modyfikacji a obiektami niezmiennymi
- 22. Jakie są wszystkie wady używania plików jako środka komunikacji między dwoma procesami?
- 23. Pomóż mi zrozumieć różnicę między obiektami typu CLOB i obiektami typu BLOB w Oracle
- 24. przeciągnij i upuść między dwoma fragmentami?
- 25. Przeciągnij i upuść między dwoma UICollectionViews
- 26. Połączenie między dwoma użytkownikami
- 27. Korelacja między dwoma wektorami?
- 28. Komunikacja między dwoma wątkami
- 29. Najlepszy algorytm skutecznego wykrywania kolizji między obiektami
- 30. Różnica ograniczenia i BEZ DZIAŁANIA
dla iOS9 sprawdzić http://stackoverflow.com/a/33733753/ 1067147 – WINSergey