Question Comment définir le titre de UIButton comme alignement gauche?


Je dois afficher l'adresse e-mail du côté gauche d'un UIButton, mais il est positionné au centre.

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

Ceci est 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];

414
2018-05-04 11:56


origine


Réponses:


Définir le contentHorizontalAlignment:

emailBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;

Vous pouvez également ajuster le contenu restant, sinon le texte touchera la bordure gauche:

emailBtn.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);

1430
2018-05-04 12:22



Vous pouvez également utiliser le générateur d'interface si vous ne souhaitez pas effectuer les ajustements dans le code. Ici, je suis parti aligner le texte et aussi le mettre en retrait:

UIButton in IB

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

enter image description here


114
2018-03-29 00:13



Dans Swift 3+:

button.contentHorizontalAlignment = .left

25
2017-09-01 06:06



UIButton *btn;
btn.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;

12
2017-08-30 04:58



En utilisant emailBtn.titleEdgeInsets est mieux que contentEdgeInsets, au cas où vous ne voulez pas changer la position du contenu dans le bouton.


8
2017-08-30 04:42



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


7
2018-03-06 17:02



Swift 4+

button.contentHorizontalAlignment = .left
button.contentVerticalAlignment = .top
button.contentEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)

6
2017-09-22 11:37



Il y a une petite erreur dans le code de @DyingCactus. Voici la solution correcte pour ajouter un UILabel à un UIButton afin d'aligner le texte du bouton pour mieux contrôler le bouton 'title':

NSString *myLabelText = @"Hello World";
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];

// position in the parent view and set the size of the button
myButton.frame = CGRectMake(myX, myY, myWidth, myHeight); 

CGRect myButtonRect = myButton.bounds;
UILabel *myLabel = [[UILabel alloc] initWithFrame: myButtonRect];   
myLabel.text = myLabelText;
myLabel.backgroundColor = [UIColor clearColor];
myLabel.textColor = [UIColor redColor]; 
myLabel.font = [UIFont fontWithName:@"Helvetica Neue" size:14.0];   
myLabel.textAlignment = UITextAlignmentLeft;

[myButton addSubview:myLabel];
[myLabel release];

J'espère que cela t'aides....

Al


4
2018-01-03 22:59



dans xcode 8.2.1 dans le générateur d'interface, il se déplace à:enter image description here


4
2018-01-27 12:55