Pregunta ¿Equivalente a la ViewPager de Android en iOS? Desliza / hojea páginas de datos


En Android hay una manera ordenada de navegar entre varias páginas de datos con el mismo diseño usando ViewPager y Fragments. El usuario se desliza hacia la izquierda o hacia la derecha, y las páginas cambian. Solo hay un controlador de vista y un recurso de diseño para todas las páginas, pero el contenido de datos cambia cuando el usuario navega. También hay un efecto de animación al deslizar hacia la izquierda y hacia la derecha donde puede ver que el contenido de la página siguiente ya está cargado.

¿Cuál es el equivalente a esto en iOS?


32
2018-03-16 09:49


origen


Respuestas:


Usar una UIScrollView con el pagingEnabled propiedad establecida en SÍ. Típicamente un UIPageControl se usa junto con eso.

Si buscas en Google "paginación UIScrollView", puedes encontrar muchos tutoriales y ejemplos. Apple proporciona un PageControl programa de muestra.

iOS no proporciona ningún tipo de clase similar a un adaptador, pero aquí hay un tutorial que explica cómo implementar "páginas virtuales" para que no tenga que crear instancias de todas las páginas a la vez: http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html


38
2018-04-03 20:19



Deberías mirar UIPageViewController. Está disponible desde iOS 5.


22
2018-03-16 09:51



Creé un control personalizado para iOS que funciona de forma similar a viewPager de Android. Puedes verificar esto aquí.


6
2018-06-27 12:14



visitar https://github.com/vowed21/HWViewPager 

Puede ser de ayuda.

Heredado UICollectionView.

Celda reutilizable, (probablemente adaptador de Android)

Y habilitar la vista previa de la parte izquierda, derecha.


0
2018-01-09 12:55



Puede implementarlo usted mismo usando la siguiente idea.

Supongamos que deseamos realizar un bucle infinito a través de 3 elementos (células): C0, C1, C2, podemos generar células ficticias en el lado izquierdo y derecho de las células centrales, el resultado es el siguiente,

C0 C1 C2 [C0 C1 C2] C0 C1 C2

Las celdas en el paréntesis son celdas que vemos a través de la pantalla del dispositivo, y si nos desplazamos a la izquierda,

C0 [C1 C2 C0] C1 C2 C0 C1 C2

en este momento, fuerce contentOffset para señalar el lado derecho de las celdas ficticias dadas,

C0 [C1 C2 C0] C1 C2 C0 C1 C2 -> C0 C1 C2 C0 [C1 C2 C0] C1 C2

Funcionará en el mismo mecanismo cuando lo desplace a la derecha.

En mi solución a continuación, configurar el ancho de la vista del elemento a su vista principal resolverá su problema.

https://github.com/DragonCherry/HFSwipeView

Si simplemente desea comprobar cómo funciona, haga clic en el enlace a continuación y "toque para jugar".

https://www.cocoacontrols.com/controls/hfswipeview

Solo usar la opción pagingEnabled en UIScrollView puede funcionar en el caso de un elemento de celda de tamaño completo, pero no funcionará correctamente si desea establecer un ancho de elemento de contenido más estrecho que su vista principal (desplazamiento). Compruebe esta función consultando la muestra de controles de coco para "Sincronización" o "Vista previa del borde".


0
2017-07-16 06:49