No puedo establecer el título de UIButton usando IB como centro. Mi título es multilínea.
Está dando como este
Pero quiero como este
He dado espacio en esto pero no quiero hacer eso. Como no está alineado exactamente para algunos casos y sé que hay una propiedad de UILabel para establecer la alineación, pero no quiero escribir un código para eso ... solo quiero configurar todo desde IB.
Gracias
ios
objective-c
uibutton
interface-builder
Inder Kumar Rathore
fuente
fuente
self.yourButton.titleLabel.textAlignment = UITextAlignmentCenter;
Respuestas:
Esto hará exactamente lo que esperabas:
C objetivo:
Para iOS 6 o superior es
como se explica en la respuesta de tyler53
Rápido:
Swift 4.xy superior
fuente
myButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
Usa la línea:
Esto debería centrar el contenido (horizontalmente).
Y si también desea establecer el texto dentro de la etiqueta en el centro, use:
[labelOne setTextAlignment:UITextAlignmentCenter];
Si desea usar IB, tengo un pequeño ejemplo aquí que está vinculado en XCode 4 pero debe proporcionar suficientes detalles (también tenga en cuenta que, en la parte superior de esa pantalla de propiedades, muestra la pestaña de propiedades. Puede encontrar las mismas pestañas en XCode 3.x):
fuente
Solución1
Puede establecer la ruta clave en el guión gráfico
Establezca el texto en su título multilínea, por ejemplo,
hello
⌥ +↵multiline
Debe presionar ⌥ + ↵para mover el texto a la siguiente línea.
Luego agregue la ruta clave
titleLabel.textAlignment
asNumber
y value1
,1
significaNSTextAlignmentCenter
titleLabel.numberOfLines
asNumber
y value0
,0
significa cualquier número de líneasEsto no se reflejará en IB / Xcode, pero estará en el centro en el tiempo de ejecución (dispositivo / simulador)
Si desea ver los cambios en Xcode, debe hacer lo siguiente: (recuerde que puede omitir estos pasos)
Subclase el botón UIB para hacer que el botón sea designable:
Asigne esta subclase designable a los botones que está modificando:
Solution2
Si quieres escribir el código, entonces haz el largo proceso
1.Cree el
IBOutlet
botón2.Escriba el código en viewDidLoad
Solución3
En la versión más reciente de xcode (la mía es xcode 6.1), tenemos el título de propiedad atribuido
Seleccione,
Attributed
luego seleccione el texto y presione la opción central a continuaciónPD: el texto no venía de varias líneas para eso tengo que configurar el
btn.titleLabel.numberOfLines = 0
fuente
Line Breaking = Clip
, transformará el texto en multilíneabtn.titleLabel.textAlignment
, funciona muy bien.Para UIButton debes usar: -
fuente
Para ios 8 y Swift
btn.titleLabel.textAlignment = NSTextAlignment.Center
o
btn.titleLabel.textAlignment = .Center
fuente
Para aquellos de ustedes que ahora usan iOS 6 o superior, UITextAlignmentCenter ha quedado en desuso. Ahora es NSTextAlignmentCenter
EJEMPLO:
mylabel.textAlignment = NSTextAlignmentCenter;
Funciona perfectamente.fuente
Para swift 4, xcode 9
fuente
Suponiendo que btn se refiere a un UIButton, para cambiar un título de varias líneas para que esté centrado horizontalmente, puede usar la siguiente instrucción en iOS 6 o posterior:
fuente
UITextAlignmentCenter
está en desuso en iOS6En su lugar, puede usar este código:
btn.titleLabel.textAlignment=NSTextAlinmentCenter;
fuente
Para Swift 3.0
fuente
Para Swift 4:
fuente
En realidad, puedes hacerlo en el generador de interfaces.
Debe establecer Título en "Atribuido" y luego elegir la alineación central.
fuente
Intenta así:
fuente
Puedes hacer esto desde el guión gráfico. Selecciona tu botón. Establezca el salto de línea 'Word Wrap', establezca su título 'Plain' en 'Attributed'. Seleccione 'Alineación central'. Esta parte es importante => Haga clic en el botón ... (Más). Y seleccione el modo de salto de línea a 'Ajuste de caracteres'.
fuente
UIButton no admitirá setTextAlignment. Por lo tanto, debe ir con setContentHorizontalAlignment para la alineación del texto del botón
Para tu referencia
fuente