2012-04-30 20 views
5

Quiero detectar cuando el usuario está desplazando un UIScrollView. scrollViewDidScroll se invoca cuando sucede eso, pero se llama también en otro momento - cuando el usuario desplaza la vista fuera de límites, y luego se libera, la vista vuelve a su lugar, y se llama al método aunque el usuario no lo haga t toque la pantalla en absoluto (la vista se desplaza por sí misma).UIscrollView DidScroll - solo cuando toca

¿cómo puedo detectar el desplazamiento y el toque del usuario juntos?

Respuesta

9

UIScrollView tiene una propiedad dragging que indica si el desplazamiento fue realizado por el usuario. Entonces, para ver si el usuario desplaza la vista de desplazamiento o el desplazamiento es causado por otra cosa (como una animación) puede hacer lo siguiente:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.dragging) { 
     // scrolling is caused by user 
    } 
} 
+1

gracias! esto es justo lo que estaba buscando –

+0

Lo usé en un UICollectionView para verificar si el usuario estaba haciendo el desplazamiento o programado. –

+0

¿La propiedad 'dragging' se establece correctamente cuando el usuario suelta la pantalla y la vista de desplazamiento todavía se desplaza debido al impulso? –

Cuestiones relacionadas