2011-03-01 20 views
11

Estoy tratando de cambiar el tamaño de una UITableViewCell sin volver a cargar la vista de tabla.¿Se puede cambiar la altura de una UITableViewCell sin volver a cargar la vista de tabla?

Mi UITableViewCell contiene una UITextView para que los usuarios puedan ingresar elementos de la lista que pueden tener varias líneas (aproximadamente cuatro como máximo) de longitud. En este momento, estoy cambiando el tamaño de la vista de texto cada vez que el usuario presiona la tecla de retorno, pero me gustaría cambiar el alto de la celda de vista de tabla , así como.

El problema principal que me estoy encontrando es que volver a cargar los datos de la vista de tabla hace que la vista de texto pierda el foco. ¿Hay alguna manera de cambiar la altura de UITableViewCell sin volver a cargar la vista de tabla, permitiendo que el usuario continúe ingresando texto en la vista de texto?

Respuesta

47

Para cambiar el tamaño de una vista fila de la tabla, intente enviar:

[tableView beginUpdates]; 
[tableView endUpdates]; 

Estos mensajes uno inmediatamente después del otro debe hacer el truco siempre y cuando tenga la altura correcta devuelto para esa célula en el método tableView:heightForRowAtIndexPath:. La fila debería animarse. Debería poder devolver la altura de su celda usando sus límites o simplemente saber cómo ha establecido la altura de la celda.

Obviamente "tableView" es el nombre de su vista de tabla.

+0

Eso es genial, gracias. También hubo mucha ayuda en [otro hilo] (http://stackoverflow.com/questions/4015557/uitextview-in-a-uitableviewcell-smooth-auto-resize-shows-and-hides-keyboard-on-ip) Encontré a través de los artículos relacionados en la barra lateral, pero de alguna manera me perdí al buscar antes de publicar esto. –

+0

Exactamente lo que necesitaba. asombroso ! – user1105951

+0

¡Un gran consejo! Esto ayudó mucho. – Zdenek

Cuestiones relacionadas