Ich möchte eine Schaltfläche in der Mitte des Bildschirms nach Code verschieben. Ich sah irgendwo nur ein paar Zeilen Code, konnte sie aber nicht finden.iOS SDK: Verschieben der Schaltfläche in die Mitte des Bildschirms durch Code
Antwort
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);
Diese Zentren auf den Button in der Superview:
CGRect bounds = button.superview.bounds;
button.center = CGPointMake(CGRectGetMidX(bounds), CGRectGetMidY(bounds));
Ist das nicht äquivalent zu '[button setCenter: superview.center]'? –
Nein, 'center' wird im Koordinatensystem der Superview gemessen, so dass der Mittelpunkt der Schaltfläche in der Mitte der Superview-Ansicht der Superview steht. –
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
}];
hi Bruno, was ist, wenn ich möchte, dass eine Schaltfläche mit bestimmten Farben animiert wird, rot und zum Beispiel? – DavidNg
Fügen Sie einfach den Farbwechselcode in den Animationsblock ein. Etwas wie: NSTimeInterval Sekunden = 1.0; [UIView animateWithDuration: Sekunden Animationen:^{ [[myButton setBackgroundColor: [UIColor redColor]]; }]; –
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.
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);
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
ist hier einfacher Ansatz:
yourButton.center = self.view.center;
Das ist die richtige Antwort! Verwenden Sie center.x oder center.y für Details in x oder y, falls erforderlich! –
Wie können Sie diese Unterstützung ändern? :( –
dank perfekt funktionieren zu – DavidNg
dies scheint für die Portrait- gut zu funktionieren, aber nicht für Landschaft, bin ich etwas falsch zu machen? – Rob85