¡Alguna ayuda sería muy apreciada aquí!Problema de actualización de la célula UITableView en la reorganización
Tengo una celda UITableView personalizada, que consiste en una imagen (verde, naranja o rojo) y dos etiquetas en diferentes tamaños de fuente. El UITableView es impulsado por un NSMutableArray de objetos.
La UITableView se divide en tres secciones, con la primera sección que contiene todas las celdas con la imagen roja, la segunda sección con la naranja, la tercera sección con la verde.
He implementado la capacidad de reorganizar las celdas dentro de UITableView, lo que permite al usuario arrastrar, por ejemplo, un elemento con una imagen roja desde la sección roja a la sección naranja. Este arrastre funciona de maravilla y los datos subyacentes se actualizan correctamente. Sé que este es el caso porque si selecciono la celda, voy a su vista de detalles y los datos se actualizan.
Sin embargo, el UITableView no se actualiza hasta que voy a los detalles (o salgo de la aplicación) y ¡regreso! También se actualiza si desplazo la celda ofensiva fuera de la vista y vuelve a la vista de nuevo, por lo que la matriz contiene claramente los datos correctos. ¡Simplemente no puedo activar una actualización de vista!
he intentado lo siguiente después de mi código para cambiar los datos subyacentes en moveRowAtIndexPath:
[self.tableView reloadData];
Sin embargo, esto provoca una excepción. De hecho, Apple Language Reference dice que no se puede llamar a ReloadData al insertar, eliminar o animar, que es, por supuesto, lo que estoy haciendo. Además, tratando sólo para refrescar la célula con
[self setNeedsDisplay];
no funciona (aunque no se cuelga tampoco).
¿Alguna idea sobre cómo puedo actualizar el UITableView? No puedo encontrar un método afterMoveHasBeenCompleted o algo así, así que si no puedo llamar a reloadData durante mi método moveRowAtIndexPath: ¿a dónde lo llamo?
¿O es esto solo un sucio truco? ¿Existe un método "animationComplete" que pueda usar en su lugar? ... – h4xxr
Esa parece ser la mejor manera de hacerlo, según la publicación de gpmoore en este hilo del desarrollador de Apple: http://discussions.apple.com/thread.jspa ? messageID = 8450874 – Tim
¡Eso es frustrante pero muy tranquilizador! ¡Gracias! – h4xxr