Tengo un UILabel cuyo tamaño se calcula con el método sizeWithFont:
. El modo de salto de línea se establece en UILineBreakModeWordWrap
(se usa el mismo indicador al calcular el tamaño con sizeWithFont:
) ...Líneas resultantes de UILabel con UILineBreakModeWordWrap
Todo funciona muy bien, la etiqueta tiene el tamaño adecuado y muestra mi texto según sea necesario.
Ahora necesito conocer las líneas que se usan para mostrar la etiqueta (o las líneas que se generan cuando se usa sizeWithFont:
). Técnicamente podría escribir mi propia implementación de salto de línea basada en espacios/retornos de intercalación, pero luego no se garantizará de la misma manera que la implementación de Apple y, por lo tanto, las líneas resultantes no serán las que se usarán para calcular el tamaño del texto. , no importa el hecho de reinventar la rueda.
Lo ideal es que pase la cadena, especifique el ancho y el modo de salto de línea y reciba una serie de cadenas que representen las líneas de texto visuales.
¿Alguna idea de cómo hacer que esto suceda de la manera más elegante?
Gracias TomSwift para su entrada ... Este tipo de obras para algunos casos, pero definitivamente me dio un gran impulso, estoy trabajando en una solución a prueba de balas más basado en el código de . ¡Gracias de nuevo! – Nick
¿Qué casos lo rompieron? – TomSwift
Buena solución TomSwift. Pero no funciona para mí, siempre es el texto en una línea, aunque la cuenta int a veces es 9, 10 o 20. Mi código: \t self.labelDescription.text = event.description; \t self.labelDescription.lineBreakMode = UILineBreakModeWordWrap; \t self.labelDescription.font = [UIFont fontWithName: @ "Helvetica" size: 13.0]; \t \t NSArray * lines = [self.labelDescription lines]; \t \t int count = [recuento de líneas]; \t self.labelDescription.numberOfLines = count; –