Tengo UITableView
(¡Agrupado!) Y necesito calcular la altura de dos estilos de celdas: UITableViewCellStyleDefault
y UITableViewCellStyleValue2
.heightForRowAtIndexPath para NSStrings más largos
Así es como lo hago por UITableViewCellStyleDefault
:
CGSize textSize = {300.f, 200000.0f};
CGSize size = [myTextString1 sizeWithFont:[UIFont systemFontOfSize:14.0f] constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap];
size.height += 30.0f;
result = MAX(size.height, 44.0f);
Y para UITableViewCellStyleValue2
:
CGSize textSize = {207.f, 200000.0f};
CGSize size = [myTextString2 sizeWithFont:[UIFont systemFontOfSize:14.0f] constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap];
size.height += 30.0f;
result = MAX(size.height, 44.0f);
Mi problema es que vuelvan alturas incorrectas y yo creo que es el textSize
donde Yo uso números incorrectos. Con textos largos, la parte inferior se corta (generalmente solo una línea con algunas palabras), y para ambos CellStyles tienen un espaciado extraño arriba y debajo del texto en la celda.
Para UITableViewCellStyleValue2
Obtuve el tamaño del ancho (207.0f
) para hacer que text.backgroundColor sea rojo y luego solo calcule el tamaño del cuadro. 300.0f
ancho para UITableViewCellStyleDefault
es lo grande que es la celda con .
¿Alguien sabe qué valores necesito usar para calcular correctamente el tamaño de un NSString
y así obtener la altura adecuada para mis celdas?
Gracias
Gracias. Terminé haciendo algo solo con las mismas líneas. Descubrí que tenía problemas con las células Value2, porque asumí que eran fontSize 14, mientras que en realidad son 15. Para su código, es posible que desee agregar: resultado = MAX (labelsize.height + 15 , 44.0f); Por si acaso, si la celda está siempre vacía o tiene menos de 2 líneas, la devolverá con una altura de fila mínima de 44.0 f, que es la normal. Si solo hay una línea, la hará más pequeña que 44.0f. – runmad