143 votes

Comment centrer l'alignement du texte de UIButton ? En utilisant IB

Je ne peux pas définir le titre de UIButton en utilisant IB comme centre. Mon titre est multi-lignes.
Il donne comme celui-ci
enter image description here

Mais je veux comme celui-ci
enter image description here

J'ai donné de l'espace à cet endroit mais je ne veux pas le faire. Je sais qu'il existe une propriété de UILabel permettant de définir l'alignement, mais je ne veux pas écrire de code pour cela, je veux simplement tout définir à partir de IB.

Merci

7 votes

Kumar Rathor - essai par code self.yourButton.titleLabel.textAlignment = UITextAlignmentCenter;

1 votes

@Spark Je sais comment faire cela par code mais ce que je voulais, c'était de le définir en utilisant 'IB'.

0 votes

Je sais, vous aimeriez le régler en utilisant IB. Mais cette propriété n'est accessible que par le code.

200voto

RGML Points 738

Cela fera exactement ce que vous attendiez :

Objective-C :

 [myButton.titleLabel setTextAlignment:UITextAlignmentCenter];

Pour iOS 6 ou supérieur, c'est

 [myButton.titleLabel setTextAlignment: NSTextAlignmentCenter];

comme expliqué dans La réponse de tyler53

Swift :

myButton.titleLabel?.textAlignment = NSTextAlignment.Center

Swift 4.x et plus

myButton.titleLabel?.textAlignment = .center

1 votes

Il est devenu NSTextAlignment dans les versions ultérieures d'iOS.

4 votes

Ce code ne fonctionne pas, la meilleure réponse est @joetjah myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

8 votes

La question mentionne explicitement IB , comme dans Constructeur d'interface . C'est pas la bonne réponse, car elle nécessite un codage.

108voto

Joetjah Points 3473

Utilisez la ligne :

myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

Cela devrait centrer le contenu (horizontalement).

Et si vous voulez que le texte à l'intérieur de l'étiquette soit également centré, utilisez :

[labelOne setTextAlignment:UITextAlignmentCenter];

Si vous voulez utiliser IB, j'ai un petit exemple ici qui est lié à XCode 4 mais qui devrait fournir suffisamment de détails (il faut aussi savoir qu'en haut de cet écran de propriétés, il y a l'onglet de propriétés. Vous pouvez trouver les mêmes onglets dans XCode 3.x) : enter image description here

1 votes

Merci... mais je ne veux pas le régler par IB. C'est ma dernière option pour le faire...

1 votes

@Inder Kumar Rathore : Pas de problème. Pour le définir dans IB, vous devez cliquer sur l'étiquette, puis dans l'inspecteur des attributs, définir l'alignement sur "Center". Dans mon IB (XCode 4), il y a 3 icônes qui montrent l'alignement du texte. Évidemment, vous devez choisir celle du milieu.

0 votes

Pouvez-vous m'envoyer la capture d'écran... C'est l'étiquette du bouton ou vous avez tiré l'UILabel de la bibliothèque... ? Je suppose que c'est le UILabel et non le label du bouton.

27voto

Sirji Points 707

Pour UIButton, vous devez utiliser :-

[btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];

16voto

Eduardo Fiorezi Points 345

Pour ios 8 et Swift

btn.titleLabel.textAlignment = NSTextAlignment.Center

ou

btn.titleLabel.textAlignment = .Center

13voto

tyler53 Points 141

Pour ceux d'entre vous qui utilisent maintenant iOS 6 ou une version ultérieure, UITextAlignmentCenter a été déprécié. Il s'agit désormais de NSTextAlignmentCenter.

EXEMPLE : mylabel.textAlignment = NSTextAlignmentCenter; Il fonctionne parfaitement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X