2015-09-16 12 views
11

Mam 5 elementów na górze mojego kontrolera widoku i staram się je rozmieścić równomiernie z autolayout. W przypadku elementu lewego (przycisku wstecz) dodałem ograniczenie na 15 pikseli od lewej krawędzi, a w przypadku prawidłowej pozycji (aparatu) dodałem ograniczenie, które ma mieć wartość 15 pikseli od prawej krawędzi. Następnie ustawi środkowy element (0:01), aby wyrównać środek x tak, aby znajdował się pośrodku. Na koniec wybrałem opcję "Zresetuj sugerowane ograniczenia" dla elementu ... i elementu flash.Wyśrodkuj element między dwoma innymi elementami w autolayout (iOS).

Patrząc na to w iPhone 5 i 4, wygląda świetnie. Jak widać, wszystkie pozycje są równomiernie podzielone: ​​
enter image description here

Jak dotąd wszystko przebiega sprawnie. Jednak, kiedy testować na iphone6 ​​i iphone6 ​​+, z „...” i symbol lampy nie są wyśrodkowane pomiędzy < a 0:01, jak przedstawiono: enter image description here

Jak wyśrodkować element pomiędzy dwoma sąsiednie przedmioty? Aka, jak wycentrować "..." tak, aby był dokładnie pomiędzy < a 0:01 ?? To proste zadanie zajmuje mi wiele godzin i nie rozumiem, dlaczego Xcode nie ma centrum między dwoma sąsiadami.

Każda pomoc będzie bardzo ceniona!

Odpowiedz

18

Jedynym sposobem, w jaki zorientowałem się, jak to zrobić, jest utworzenie kontenera, w którym znajduje się obiekt, w którym ma się znajdować środek między tymi dwoma elementami. Ten pojemnik powinien mieć takie same końcowe i wiodące ilości, a następnie po prostu wycentrować "rzecz" w tym pojemniku.

W poniższym przykładzie niebieskie pole będzie oznaczać pomarańczowe "...", a ciemnoszare pole będzie odpowiadało pojemnikowi używanemu do centrowania. Gdy układ działa, po prostu ustaw pojemnik tak, aby miał wyraźne wypełnienie.

enter image description here

+0

Awesome. Wypróbuję to. Mam nadzieję, że Apple znajdzie łatwiejszy sposób, aby to zrozumieć w najbliższej przyszłości. –

+0

Pracował cudownie. –

+0

Spójrz na [to pytanie] (http://stackoverflow.com/questions/13075415/evenly-space-multiple-views-within-a-container-view) w celu uzyskania bardziej ogólnych rozwiązań (np. W celu rozłożenia widoków 'n'). – ahmacleod

0

Wystarczy dodać: Jeśli korzystasz z UIImageView jako kontenera, to jest już przezroczysta, jak nie wypełnić go z obrazem. Ponadto górne i dolne uchwyty można łatwo ustawić w pozycji

+0

Tak, ale zalecam używanie widoku jako kontenera jako standardowej praktyki. –

Powiązane problemy