2012-07-17 4 views

Répondre

15

Cela devrait le faire:

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

merci travail parfait trop – DavidNg

+0

cela semble bien fonctionner pour le portrait, mais pas pour le paysage, que je fais quelque chose de mal? – Rob85

23

Ce centre de la touche dans sa superview:

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

N'est-ce pas l'équivalent de '[bouton setCenter: superview.center]'? –

+0

Non, le «centre» est mesuré dans le système de coordonnées de la vue d'ensemble, ce qui placerait le «centre» du bouton au milieu de la vue d'ensemble de sa vue d'ensemble. –

1

Les deux rooster117 et les réponses semblent DavidNg correct. Juste pour ajouter un plus « option » pour vous, si vous voulez faire d'animation, vous devez faire:

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

salut Bruno, que faire si je veux un bouton animé d'une couleur spécifique, rouge et par exemple? – DavidNg

+0

Mettez simplement le code de changement de couleur dans le bloc d'animation. Quelque chose comme: NSTimeInterval secondes = 1.0; [UIView animateWithDuration: secondes animations:^{ [[myButton setBackgroundColor: [UIColor redColor]]; }]; –

0

Il y a des façons de le faire sans écrire de code. Si vous voulez essayer de placer le bouton au centre de l'écran en utilisant les paramètres d'interface, vous pouvez 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

Bienvenue dans StackOverflow! Les réponses au code seulement [sont déconseillées] (http://meta.stackexchange.com/a/148274/230241); S'il vous plaît modifier votre réponse pour inclure au moins une explication de pourquoi cela fonctionne. – ravron

2

Voici approche plus simple:

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

Ceci est la bonne réponse! Utilisez center.x ou center.y pour plus de détails en x ou y si nécessaire! –

+0

comment faites-vous pour que cette orientation change les orientations? :( –

Questions connexes