¿Cómo puedo detectar el número de página siguiente de UIScrollView que es 'scrollView.pagingEnabled' = YES? en 'scrollViewDidEndDragging'?

Busqué varias cosas en stackoverflow como

CGFloat pageWidth = scrollView.frame.size.width; int pageNumberToBeScrolled = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1; if (pageNumberToBeScrolled != 1) { // Do what I want } 

en

 - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate; 

Pero esto funciona solo si me desploop lentamente, por lo que la página de desplazamiento se mueve definitivamente por encima de la mitad. Esto no funciona si me desploop rápido como deslizar. Acabo de desplazarme como el 30% de la página de desplazamiento, que no satisface la situación, pero se desplazó a la página siguiente y quiero detectarla.

¿Cómo puedo detectar o detectar todas las situaciones de scroll-to-next-page ? Por favor dame ayuda 🙂

EDITAR

Estoy trabajando en esto porque quiero reproducir un sonido de efecto cuando sucede la página de desplazamiento a página siguiente. Debería detectar justo después de que mi dedo está fuera de la pantalla y solo para el desplazamiento de la página siguiente. Creo que si manejo esto en scrollViewDidEndDragging , será lo mejor para mí 🙂

Estoy usando este código para detectar si currentPage se cambia, no importa que se desplace muy rápido o muy lento.

 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { static NSInteger previousPage = 0; CGFloat pageWidth = scrollView.frame.size.width; float fractionalPage = scrollView.contentOffset.x / pageWidth; NSInteger page = lround(fractionalPage); NSLog(@"%d",page); if (previousPage != page) { previousPage = page; /* Page did change */ } } 

intenta así puede ser que te ayude

 - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { float fractionalPage = scrollView.contentOffset.x / 320; NSInteger page1 = lround(fractionalPage); NSLog(@"%d",page1); }