objective-c - texto - html centrar un titulo
¿Cómo configurar el título de UIButton como alineación a la izquierda? (10)
Necesito mostrar la dirección de correo electrónico desde el lado izquierdo de un UIButton
, pero se está posicionando en el centro.
¿Hay alguna forma de establecer la alineación en el lado izquierdo de un UIButton
?
Este es mi código actual:
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];
Aquí se explica cómo hacerlo y por qué funciona así: http://cocoathings.blogspot.com/2013/03/how-to-make-uibutton-text-left-or-right.html
El uso de emailBtn.titleEdgeInsets
es mejor que contentEdgeInsets
, en caso de que no desee cambiar la posición del contenido completo dentro del botón.
En Swift 3+:
button.contentHorizontalAlignment = .left
Establece el contenido Alineación horizontal:
emailBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
También es posible que desee ajustar el contenido del recuadro izquierdo, de lo contrario, el texto tocará el borde izquierdo:
emailBtn.contentEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
Hay un pequeño error en el código de @DyingCactus. Aquí está la solución correcta para agregar un UILabel a un UIButton para alinear el texto del botón para controlar mejor el botón ''título'':
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];
Espero que esto ayude....
Alabama
Para Swift 2.0:
emailBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignment.Left
Esto puede ayudar si es necesario.
También puede utilizar el generador de interfaces si no desea realizar los ajustes en el código. Aquí dejé alinear el texto y también lo sangré un poco:
No olvides que también puedes alinear una imagen en el botón también:
Swift 4+
button.contentHorizontalAlignment = .left
button.contentVerticalAlignment = .top
button.contentEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)
UIButton *btn;
btn.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;