¿Por qué sizeWithFont: restricinedToSize: lineBreakMode: está devolviendo un tamaño incorrecto?
-
05-07-2019 - |
Pregunta
Tengo dos anchos posibles para una cadena que quiero mostrar en una etiqueta en una celda de la tabla, y necesito calcular la altura para que la altura de la celda de la tabla se registre correctamente. Sin embargo, no importa lo que haga para el tamaño restringido, obtengo la misma altura, lo cual es incorrecto en el caso que deseo. El código que estoy usando:
CGFloat width = 300.0f;
NSString * value = @"LongText LongText LongText LongText LongText LongText";
CGSize contentSize = [value sizeWithFont: [UIFont systemFontOfSize: 14.0f]
constrainedToSize: CGSizeMake(width, CGFLOAT_MAX)
lineBreakMode: UILineBreakModeWordWrap];
Cuando inspecciono la variable contentSize, el ancho es 252 y el alto es 36, lo que se espera. Pero si, en lugar de 300.0fi, inserte 222.0f en la variable de ancho, el ancho es 189, pero el alto sigue siendo 36, y solo se muestran las 4 primeras palabras de texto largo en 2 líneas (la tercera línea parece estar cortada de alguna manera en el cálculo). ¿Alguien sabe por qué sucede esto?
Otros consejos
Resulta que está devolviendo el tamaño correcto; el código en el que estaba trabajando estaba usando anchos incorrectos en lugar de los anchos de este método, por eso el texto se cortó y me confundí.