511 votes

Comment puis-je définir le titre d'un UIButton en tant qu'aligné à gauche?

Je dois afficher une adresse e-mail sur le côté gauche d'un UIButton, mais elle est positionnée au centre.

Y a-t-il un moyen de définir l'alignement sur le côté gauche d'un UIButton ?

Voici mon code actuel :

UIButton* emailBtn = [[UIButton alloc] initWithFrame:CGRectMake(5,30,250,height+15)];
emailBtn.backgroundColor = [UIColor clearColor];
[emailBtn setTitle:obj2.customerEmail forState:UIControlStateNormal];
emailBtn.titleLabel.font = [UIFont systemFontOfSize:12.5];
[emailBtn setTitleColor:[[[UIColor alloc]initWithRed:0.121 green:0.472 blue:0.823 alpha:1]autorelease] forState:UIControlStateNormal];
[emailBtn addTarget:self action:@selector(emailAction:) forControlEvents:UIControlEventTouchUpInside];
[elementView addSubview:emailBtn];
[emailBtn release];

0 votes

Pour Swift 5.1, vous pouvez consulter ma réponse stackoverflow.com/questions/2765024/…

1659voto

DyingCactus Points 15843

Définir l'alignement du contenu :

// Swift 
emailBtn.contentHorizontalAlignment = .left;

// Objective-C
emailBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;

Vous voudrez peut-être également ajuster le décalage à gauche du contenu, sinon le texte touchera la bordure de gauche :

// Swift 3 et versions ultérieures:
emailBtn.contentEdgeInsets = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 0);

// Objective-C
emailBtn.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);

48 votes

Gardez à l'esprit que vous pouvez également définir ces deux propriétés à partir de Interface Builder.

1 votes

Alors c'était le numéro 9000 de ma part, merci, réponse utile

8 votes

Nous sommes trop paresseux pour chercher dans la documentation. Que ferions-nous sans SO!

123voto

n8tr Points 686

Vous pouvez également utiliser l'interface builder si vous ne voulez pas apporter les ajustements dans le code. Ici, j'ai aligné le texte à gauche et je l'ai également indenté :

UIButton in IB

N'oubliez pas que vous pouvez également aligner une image dans le bouton :

enter image description here

0 votes

Cela m'a beaucoup aidé, je n'arrive pas à croire que je n'ai pas réalisé que c'est à quoi servaient ces contrôles.

1 votes

Merci, Cela m'a aidé. Je n'ai pas pu trouver les marges intérieures pour le titre du bouton sans l'aide de l'indication de la flèche dans vos images d'exemple.

0 votes

Dans xcode 8.2.1, il a été déplacé à un autre endroit. Voir ma réponse ci-dessous

15voto

bhavik Points 173
UIButton *btn;
btn.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;

10voto

Gabriel Points 21

Utiliser emailBtn.titleEdgeInsets est mieux que contentEdgeInsets, au cas où vous ne voulez pas changer la position de tout le contenu à l'intérieur du bouton.

8voto

emkaka Points 91

Voici expliqué comment le faire et pourquoi cela fonctionne ainsi : http://cocoathings.blogspot.com/2013/03/how-to-make-uibutton-text-left-or-right.html

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