Me gustaría tener un desplazamiento horizontal UIScrollView con paginación activada. Las páginas de este scrollview tienen anchos diferentes, por lo que el desplazamiento de la distancia varía 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

Aquí | Now | tiene un ancho menor que | Yesterday evening |. Cuando la paginación a través de estos valores, el scrollview debe detenerse en el centro de la función de valor.

Es posible?

InformationsquelleAutor liefersfl | 2011-02-23

1 Comentario

  1. 13

    es sin duda posible, pero no de forma automática…

    supongo que debe implementar el UIScrollViewDelegate método de protocolo:

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

    es el método que se llama cuando el usuario deje de mover el dedo en el scrollView,
    usted puede comprobar dentro de las coordenadas de su contenido:

    yourScrollView.contentOffset

    y, a continuación, comprobar que uno de su página.x ( registrar en una matriz en el momento de crearlos, o comprobar el origen de todos su punto de vista agregado a la scrollView) está más cerca de él, a continuación, vaya a la compensación de su página (con animación) llamando:

    - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
    • Gracias meronix, que era exactamente lo que estaba buscando! Algunos consejos adicionales: – UIScrollView.pagingEnabled se ha establecido para NO – yo también tuve que implementar el UIScrollViewDelegate método de protocolo: - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
    • para un mejor resultado que he terminado la aplicación de la - scrollViewWillBeginDecelerating:(UIScrollView *)scrollView método

Dejar respuesta

Please enter your comment!
Please enter your name here