Etiqueta multilínea iOS en el constructor Interfaz
objective-c swift (10)
Para X-Code 7.2
- Seleccione UILabel
- Inspector de atributos
- Texto - Seleccionar atribuido
Después de esto, puede ver algunos atributos más que puede agregar a su etiqueta, en los que también puede encontrar el número de Líneas . Que hacen que tu etiqueta sea multilínea .
¿Cómo puedo hacer un UILabel
multilínea en el constructor de interfaces para iOS? UITextView
la UITextView
pero no se ajustaba a mis necesidades.
¿Cómo puedo agregar líneas múltiples (texto) en la etiqueta?
Debes asignar la propiedad numberOfLines
. Puedes hacerlo a través del código:
textLabel.numberOfLines = 5; // for example
O a través de Interface Builder:
El número de líneas es visible en IB con el campo de líneas definidas de UILabels como 0. Creará líneas múltiples según el espacio proporcionado a la etiqueta.
En iOS7 (Xcode5), debes establecer las líneas de UILabel en 0
para una entrada múltiple ilimitada en el guión gráfico.
Lo más importante es establecer la height of the UILabel
puede contener las líneas de entrada que va a establecer.
Establezca el número de líneas cero para la información de texto dinámico, será útil cuando su texto varíe.
Programaticamente (Swift 3)
var label = UILabel()
let stringValue = "iOS/nmultiline/nlabel/nin/nInterface/nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame
Usando Inetrface Builder
Nota: No es necesario configurar la Minimum Font Scale
, pero es bueno tener un factor de escala mínimo para ajustar el texto en el marco de la etiqueta.
Gracias AppleVijay!
También para llamar a sizeToFit, así:
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];
La altura se calculará automáticamente.
Hit Control + Enter para agregar una línea en UILabel en Interface Builder / Storyboard.
Si establece la propiedad numberOfLines igual a 0, la etiqueta se ajustará automáticamente al número requerido de líneas del texto dado.
coloque el ancho de la etiqueta como lo necesita pequeño y luego use IB para establecer saltos de línea para ajustar la palabra
o usar con un código como este
Encontré una solución.
Uno solo tiene que agregar el siguiente código:
textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
textLabel.lineBreakMode = UILineBreakModeWordWrap;
textLabel.numberOfLines = 0;
CGSize size = [[[arrNewsFeed objectAtIndex:row] objectForKey:@"c"] sizeWithFont:[UIFont systemFontOfSize:14.0] constrainedToSize:CGSizeMake(188, CGFLOAT_MAX)
lineBreakMode:NSLineBreakByTruncatingTail];
textLabel.frame = (CGRect){.origin = cell.lblNewsDescription.frame.origin, .size = size};