Posiblemente un duplicado pero no pude encontrar una pregunta específica en SO, así que aquí está.Mejores prácticas para dibujar alturas de fila de UITableView dinámicas
Tengo curiosidad acerca de cambiar dinámicamente las alturas para todas las filas, por lo general, porque no conoce la longitud de un NSString que se utiliza para una etiqueta.
Sé que debe utilizar este método delegado para cambiar las alturas de las filas:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
El problema es que este método delegado se llama antes de crear la célula (es decir, antes llamada cellForRowAtIndexPath
).
Entonces, lo que he pensado es crear una celda falsa en viewWillAppear
y un método que agrega alturas de celda a una matriz que se asigna a la fuente de datos de la vista de tabla (que en mi caso también es una matriz).
viewWillAppear
implementa este método importante para obtener la altura:
[NSString sizeWithFont: constrainedToSize: lineBreakMode:]
Luego, en heightForRowAtIndexPath
puedo devolver la altura de la celda, así:
//cellHeights is an ivar populated in viewWillAppear
return [[cellHeights objectAtIndex:indexPath.row] floatValue];
Me preguntaba si había una ¿mejor manera de cambiar dinámicamente la altura de la fila?
Me doy cuenta de que esto degradará el rendimiento de una gran cantidad de filas (más de 1000, creo). Pero en mi caso, mis filas nunca se acercarán a ese número. Entonces, el rendimiento alcanzado es insignificante.
¡Gracias de antemano!
Muy mal. Esperaba más respuestas también. ¡Gracias por tu contribución! –