2012-07-17 2 views

Antwort

15

Dies sollte es tun:

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

dank perfekt funktionieren zu – DavidNg

+0

dies scheint für die Portrait- gut zu funktionieren, aber nicht für Landschaft, bin ich etwas falsch zu machen? – Rob85

23

Diese Zentren auf den Button in der Superview:

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

Ist das nicht äquivalent zu '[button setCenter: superview.center]'? –

+0

Nein, 'center' wird im Koordinatensystem der Superview gemessen, so dass der Mittelpunkt der Schaltfläche in der Mitte der Superview-Ansicht der Superview steht. –

1

Beide rooster117 und DavidNg Antworten richtig zu sein scheinen. Nur noch eine „Option“, um den Sie hinzufügen, wenn Sie diese animierte tun wollen, sollten Sie tun:

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

hi Bruno, was ist, wenn ich möchte, dass eine Schaltfläche mit bestimmten Farben animiert wird, rot und zum Beispiel? – DavidNg

+0

Fügen Sie einfach den Farbwechselcode in den Animationsblock ein. Etwas wie: NSTimeInterval Sekunden = 1.0; [UIView animateWithDuration: Sekunden Animationen:^{ [[myButton setBackgroundColor: [UIColor redColor]]; }]; –

0

Es gibt einige Möglichkeiten, es zu tun, ohne Code zu schreiben. Wenn Sie versuchen möchten, die Schaltfläche mithilfe der Schnittstelleneinstellungen in die Bildschirmmitte zu platzieren, können Sie 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

Willkommen bei StackOverflow! Nur-Code-Antworten [werden davon abgeraten] (http://meta.stackexchange.com/a/148274/230241); Bitte editiere deine Antwort, um zumindest einige Erklärungen zu geben, warum das funktioniert. – ravron

2

ist hier einfacher Ansatz:

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

Das ist die richtige Antwort! Verwenden Sie center.x oder center.y für Details in x oder y, falls erforderlich! –

+0

Wie können Sie diese Unterstützung ändern? :( –

Verwandte Themen