ios objective-c swift uilabel line-breaks

Etiqueta multilínea iOS en el constructor Interfaz



objective-c swift (10)

Para X-Code 7.2

  1. - Seleccione UILabel

  2. - Inspector de atributos

  3. - 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};