¿Por qué sizeWithFont: restricinedToSize: lineBreakMode: está devolviendo un tamaño incorrecto?

StackOverflow https://stackoverflow.com/questions/1407106

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?

¿Fue útil?

Solución

Tu código se ve bien. Mire aquí y aquí para ver si hay algo mal en su código.

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í.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top