2012-03-16 8 views
29

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.¿Equivalente a la ViewPager de Android en iOS? Desliza/hojea las páginas de datos

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

+0

Estoy buscando exactamente lo mismo. Estoy portando una aplicación de Android a iOS y no estoy seguro de si usar ScrollView, una TableView horizontal, el PageViewController, etc. Tampoco estoy seguro de cómo manejar la asignación dinámica o la liberación de las vistas que eran automáticas en Android ya que cada detalle view fue su propio fragmento que se liberó cuando ViewPager y Adapter ya no lo necesitaban, etc. ¿Cuál es el equivalente? –

+1

Usando Container view y UIPageViewController podemos hacer esto ... https://stackoverflow.com/a/45188331/4665694 –

Respuesta

36

Utilice un UIScrollView con la propiedad pagingEnabled establecida en YES. Por lo general, se usa un UIPageControl junto con él.

Si busca "paginación UIScrollView" en Google, puede encontrar muchos tutoriales y ejemplos. Apple proporciona un programa de ejemplo PageControl.

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

21

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

+0

Gracias, pero parece que esto es navegación _entre los controladores de vista en lugar de usar un adaptador de datos para una y el mismo controlador de vista. Tengo una cantidad no especificada de "páginas", su contenido se descarga de un servicio web. – Vanja

+1

Puede crear una clase ViewController con varios objetos para cada página y agregarla al PageViewController. – Ingolmo

+0

Eso es verdad. Esa es probablemente la forma de hacerlo en iOS. Sin embargo, tendré que admitir al menos iOS 4, así que intentaré ver si puedo usar UISwipeGestureRecognizer. Gracias :) – Vanja

6

He creado un control personalizado para iOS que funciona de forma similar a viewPager de Android. Puede verificar esto here.

+1

¡buen control! Gracias –

+1

controlador tan útil ... Gracias Bro ... –

0

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

Puede ayudarle.

Heredado UICollectionView.

celular reutilizable, (adaptador de probabilidades de Android)

y permitir que parte de vista previa de la izquierda, a la derecha.

+0

HI También estoy utilizando HWView buscapersonas como una sub-vista en una aplicación de supervisión cuando llamo a este HWViewpager volver a cargar los datos de recarga de toda la vista de datos. Por favor ayuda si tienes alguna idea al respecto. –

0

Puede implementarlo usando la siguiente idea.

Supongamos que deseamos infinitamente bucle 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 del centro, el resultado como sigue,

C0 C1 C2 [C0 C1 C2] C0 C1 C2

Las células en el soporte son células que ver a través de la pantalla del dispositivo, y si desplazarse 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 [C0 C1 C2] C0 C1 C2 C1 C2 -> C0 C0 C1 C2 [C0 C1 C2] C1 C2

Será obras en mismo mecanismo cuando se desplaza a la derecha.

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

https://github.com/DragonCherry/HFSwipeView

Si lo que desea es simplemente comprobar cómo funciona, haga clic en enlace de abajo y "puntear para jugar".

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

Sólo mediante la opción pagingEnabled en UIScrollView puede funcionar en el caso del tema de células de tamaño completo, pero no funcionará correctamente si desea establecer anchura más estrecha del elemento de contenido que su matriz vista (desplazamiento). Compruebe esta función consultando la muestra de controles de coco para "Sincronización" o "Vista previa del borde".

Cuestiones relacionadas