2012-07-17 6 views

Odpowiedz

15

ten powinien zrobić:

yourButton.frame = CGRectMake(self.view.frame.size.width/2 - yourButton.frame.size.width/2, self.view.frame.size.height/2 - yourButton.frame.size.height/2, yourButton.frame.size.width, yourButton.frame.size.height); 
+0

dzięki pracy też doskonałe – DavidNg

+0

to wydaje się działać dobrze dla portretu, ale nie dla krajobrazu, robię coś źle? – Rob85

23

ten centruje przycisk w SuperView:

CGRect bounds = button.superview.bounds; 
button.center = CGPointMake(CGRectGetMidX(bounds), CGRectGetMidY(bounds)); 
+1

Czy nie jest to odpowiednikiem '[button setCenter: superview.center]'? –

+0

Nie, 'center' jest mierzone w układzie współrzędnych superview, więc ustawiłoby' center' przycisku na środek superview's superview. –

1

Oba rooster117 i odpowiedzi DavidNg wydają się poprawne. Wystarczy dodać jeszcze jedną „opcję” do ciebie, jeśli chcesz to zrobić animowane, należy zrobić:

NSTimeInterval seconds = 1.0; 
[UIView animateWithDuration:seconds animations:^{ 
    //here you should write any reframing/repositioning code 
}]; 
+0

Cześć Bruno, co jeśli chcę przycisk do animacji z konkretnymi kolorami, czerwonym i na przykład? – DavidNg

+0

Wystarczy umieścić kod zmiany koloru wewnątrz bloku animacji. Coś jak: NSTimeInterval seconds = 1.0; [UIView animateWithDuration: seconds animations:^{ [[myButton setBackgroundColor: [UIColor redColor]]; }]; –

0

Istnieje kilka sposobów, aby to zrobić bez konieczności pisania kodu. Jeśli chcesz spróbować umieścić przycisk na środku ekranu przy użyciu ustawień interfejsu, możesz view my clip.

0
bntTimeEtrySave.Frame =new CoreGraphics.CGRect (
    this.View.Center.X-((bntTimeEtrySave.Bounds.Size.Width)/2), 
    bntTimeEtrySave.Frame.Y,bntTimeEtrySave.Bounds.Size.Width, 
    bntTimeEtrySave.Bounds.Size.Height); 
+1

Witamy w StackOverflow! Odpowiedzi tylko na kod [są odradzane] (http://meta.stackexchange.com/a/148274/230241); edytuj swoją odpowiedź, aby przynajmniej wyjaśnić, dlaczego to działa. – ravron

2

Oto bardziej proste podejście:

yourButton.center = self.view.center; 
+0

To jest poprawna odpowiedź! Użyj center.x lub center.y, aby uzyskać szczegółowe informacje w x lub y, jeśli to konieczne! –

+0

W jaki sposób zmieniasz orientację pomocy technicznej? :( –

Powiązane problemy