2010-08-19 9 views
6

Necesito hacer un seguimiento de las celdas visibles en un UITableView, ya que ciertos eventos deben ocurrir cuando las celdas que representan piezas específicas de datos se vuelven visibles. UITableView no parece ser compatible con KVO para -indexPathsForVisibleRows o -visibleCells, y no hay un método UITableViewDelegate que proporcione un gancho para que se le notifique que las celdas visibles han cambiado.¿Hay una manera fácil de observar las celdas visibles en una UITableView?

¿Hay alguna forma de hacer esto, salvo hacer un seguimiento manual de mi propia matriz, y agregar/eliminar objetos cada vez que inserte/elimine una fila, vuelva a cargar la tabla o se invoquen métodos como -tableView:cellForRowAtIndexPath:?

Respuesta

0

Sin piratería/o subclases UITableView UITableViewCell, la respuesta parece ser que no.

5

¿Qué tal método UITableViewDelegate:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
+1

De lo que puedo decir 'UITableView.visibleCells' se actualiza _después_ se llama este método, por lo que no ayuda a resolver este problema en particular. –

0

Si no está haciendo demasiadas cosas exóticas con la tabla en sí, como volver a organizar y eliminar/insertar filas, puede usar el método scrollviewDidScroll: y los otros métodos delegados scrollview enviados por una tabla vista.

en ese método puede llamar a visiblesCells e ir desde allí.

Cuestiones relacionadas