viewpager tutorial pageviewcontroller page control iphone uiscrollview paging picker

iphone - pageviewcontroller - swift page control tutorial



Paging UIScrollView con diferentes anchos de página (1)

Me gustaría tener un UIScrollView de desplazamiento horizontal con la función de paginación habilitada. Las páginas en esta vista de desplazamiento tienen diferentes anchos, por lo que la distancia de desplazamiento difiere de una página a otra.

El objetivo es hacer un selector para diferentes puntos en el tiempo, por ejemplo:

| Now | Yesterday evening | Last Week | Last Month | ^ ^ ^ ^ <- stopps here

Aqui | Now | | Now | tiene un ancho menor que | Yesterday evening | | Yesterday evening | . Cuando se navega a través de estos valores, la vista de desplazamiento debe detenerse en el centro del valor correspondiente.

¿Es eso posible?


Seguramente es posible, pero no tan automáticamente ...

Supongo que deberías implementar el método de protocolo UIScrollViewDelegate:

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

es el método llamado cuando el usuario se detiene para mover el dedo en el scrollView, puede verificar dentro de él la coordenada de su contenido:

yourScrollView.contentOffset

y luego verifique cuál de sus page.x (regístrelos en una matriz cuando los cree, o verifique el origen de toda su vista agregada al scrollView) se acerque más a ella, luego vaya al offSet de su página (con animación). ) llamando:

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated