¿Cómo lo hago para que cuando el usuario se desplaza a una nueva página en UIScrollView, el UIPageControl se actualice?¿Cómo actualizar UIPageControl cuando UIScrollView con PagingEnabled cambia la página?
12
A
Respuesta
34
tengo Usé esto antes y parecía funcionar bien. Asegúrese de establecer el UIScrollView.delegate en uno mismo.
#pragma mark - UIScrollViewDelegate methods
- (void)scrollViewDidEndDecelerating:(UIScrollView *)sender {
uint page = sender.contentOffset.x/width;
[self.pageControl setCurrentPage:page];
}
4
Cuando haya definido su UIScrollView y UIPageControl, usted tiene que poner en práctica este método:
- (void)scrollViewDidScroll:(UIScrollView *)_scrollView
{
if (pageControlIsChangingPage)
return;
CGFloat pageWidth = _scrollView.frame.size.width;
int page = floor((_scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1;
pageControl.currentPage = page;
}
y éste:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)_scrollView
{
pageControlIsChangingPage = NO;
}
donde pageControlIsChangingPage
es:
BOOL pageControlIsChangingPage;
2
Aquí es una actualización de esta respuesta para Swift, así:
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
pageControl.currentPage = Int(myScrollView.contentOffset.x)/Int(myScrollView.frame.width)
}
Cuestiones relacionadas
- 1. UIScrollView - (rebotes = NO) parece anular (pagingEnabled = YES)
- 2. ¿Cómo se combina UIScrollview con UIPagecontrol para mostrar diferentes vistas?
- 3. Problema UIScrollView pagingenabled en IOS 3.1.3
- 4. cómo configurar programáticamente la página actual para UIPageControl?
- 5. UIPageControl no responde al tacto, no cambia el punto
- 6. UIScrollView ajusta contentOffset cuando cambia contentSize
- 7. Vinculación mediante programación de UIPageControl a UIScrollView
- 8. No se puede deshabilitar el rebote con UIScrollView y pagingEnabled = SÍ
- 9. Actualizar enlace inmediatamente cuando DataContext cambia
- 10. control de página en uiscrollview
- 11. Crear un UIPageControl vertical
- 12. UIViews con UIPageControl
- 13. ¿cómo utilizo un UIPageControl?
- 14. UIPageControl dot para una página de búsqueda
- 15. ¿UIPageControl es inútil por sí mismo?
- 16. La mejor manera de actualizar/cargar UIScrollView
- 17. jquery texto cambia cuando la entrada cambia
- 18. Cambiar página sin actualizar un div en la página
- 19. Paginación UIScrollView con diferentes anchos de página
- 20. Actualizar página cuando está cerrado colorbox
- 21. Actualizar campo automáticamente cuando se cambia un campo diferente
- 22. ¿Cómo actualizar un CursorAdapter vinculado a la vista de lista cuando cambia la cantidad de elementos?
- 23. ¿Cómo puedo cambiar la URL de la página sin actualizar la página?
- 24. Cómo activar DataTemplateSelector cuando la propiedad cambia?
- 25. UIScrollView: con la paginación habilitada, ¿puedo "cambiar" el ancho de página?
- 26. UIPageControl no se muestra
- 27. Evento cuando window.location.href cambia
- 28. Obtener la celda visible de UITableView pagingEnabled
- 29. cómo cambiar los puntos UIPageControl
- 30. ¿Actualizar la actividad de lista de Android cuando cambia la lista de datos?
Eso es lo que hice al principio, pero la respuesta de Picciano es más correcto: si manipula 'scrollViewDidEndDecelerating', no lo hace Obtenga "alertas falsas" mientras anima. –