2010-03-01 13 views
6

que hace referencia esta pregunta: How to detect when a UIScrollView has finished scrolling¿Se puede recibir una notificación cuando un UITableView termine de desplazarse?

UITablewView es una subclase de UIScrollView, y mi UITableView delegado hace llegar el mensaje - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView cuando me desplazo la mesa con la mano.

Sin embargo, cuando llamo a - (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated para desplazar la tabla, no aparece el mensaje scrollViewDidEndDecelerating. Estoy llamando al método scrollRowToIndexPath... con animated:YES.

¿Esto es una limitación de error/API (en iPhone SDK 3.1.3) o me está perdiendo otra forma de hacerlo?

+0

Solución recién desarrollada para rastrear el desplazamiento finalizó la aplicación ampliamente: http://stackoverflow.com/a/42705702/440168 – k06a

Respuesta

6

Por si alguien todavía está persiguiendo a éste, la documentación de Apple dicen que el siguiente bajo el scrollToRowAtIndexPath:atScrollPosition:animated: documentación:

"La invocación de este método no causa el delegado para recibir una scrollViewDidScroll: mensaje, como es normal para operaciones de interfaz de usuario invocadas por programación ".

1

Tuve el mismo problema. Pero lo resolví al hacer esto mediante programación después de desplazarse a la fila especificada:

NSTimer *t = [NSTimer scheduledTimerWithTimeInterval: 0.6 
               target: self 
              selector:@selector(doneScrolling) 
              userInfo: nil repeats:NO]; 

En mi caso, yo sólo quería resaltar la fila después de que se desplaza a.

O

Si desea que el código ejecutado más inmediatamente y no quieren esperar a .6 segundos, usted podría ser capaz de bucle para mantener el control de si la fila que ha desplazado hasta es visible todavía . Use la propiedad visibleCells en UITableView. Cuando esté visible, sabrá que está listo para desplazarse y podrá ejecutar su código.

Cuestiones relacionadas