2013-04-11 13 views
5

Mam UIButton typu UIButtonRoundedRectType, który chcę umieścić w środku ekranu poziomo i pionowo.Jak umieścić przycisk w środku UIView w poziomie i w pionie dla dowolnego urządzenia?

Próbowałem zrobić to przez numery kodowania, ale ten spogląda wstecz, gdy działa na iPhone vs iphone (siatkówka). Chciałbym programowo utrzymywać przycisk w środku, obliczając szerokość kontenera.

Tak, próbowałem tego, ale to nie działa.

container = view.frame.size 
button = UIButton.buttonWithType(UIButtonTypeRoundedRect) 
button.frame = [[container.width/2-button.frame.size.width/2,150], [280,50]] 
+0

Można to zrobić za pomocą obrazkowa pomocą ograniczenia układu. W ten sposób nie musisz się martwić o twarde kodowanie czegokolwiek. http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1 – Jordan

+0

Co nie działa? Czego używasz do "widoku"? –

+0

(Należy pamiętać, że powyższe okno zostanie wyśrodkowane tylko w "widoku" .Jeśli "widok" nie jest wyśrodkowany, przycisk będzie równie niecentryczny.) –

Odpowiedz

6

Jak o:

button.center = [button.superview convertPoint:button.superview.center fromView:button.superview.superview]; 
1

Byłaś zbyt daleko. To działa (próbowałem):

container = view.frame.size 
button = UIButton.buttonWithType(UIButtonTypeRoundedRect) 
button_size = [ 280, 50 ] 
left_margin = (container.width/2) - (button_size[0]/2) 
top_margin = (container.height/2) - (button_size[1]/2) 
button.frame = [[ left_margin, top_margin ], button_size ] 
button.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin 
1

Jeśli używasz widoku w XIB, możesz użyć tego, o czym wspomniałem.

PRZEJDŹ do XIB -> Kliknij Widok -> Kliknij na Rozmiar Inspektor -> Rozmieść (Możesz ustawić pozycję tutaj).

enter image description here

Wybierz wszystkie właściwości Position of Container i Fill Container.

A jeśli tworzysz widok dynamicznie (nie w XIB), możesz użyć odpowiednich granic supertestu.

8

Proste podejście:

button.center = view.center; 
Powiązane problemy