2011-02-08 20 views
5

¿Es el siguiente fácil de cifrar?Deslizar para cambiar las vistas

Tengo una vista de tabla y cuando el usuario selecciona una celda se carga una vista de detalles. Quiero permitir que el usuario navegue a través de los elementos/vista de detalles que representan los elementos en la vista de tabla con deslizamientos hacia la izquierda y derecha, trabajando de la misma manera que p. Ej. la pantalla de inicio del iPhone (por ejemplo, al deslizar, una página se mueve fuera de la pantalla y aparece la siguiente).

He visto esto implementado en MobileRSS-APP, por lo que es posible, pero me cuesta trabajo encontrar la manera de hacerlo correctamente.

¡Gracias un millón por adelantado! Todavía estoy tratando de encontrar mis pies con cocoa-touch ...

+1

+1, también estoy interesado en saber cómo funciona esto. La aplicación Reeder lo hace desplazándose hacia arriba y hacia abajo, por lo que quizás EGOTableviewPullRefresh sea un buen lugar para comenzar a investigar sobre técnicas similares. – phi

+0

Basado en mi comentario, hice una búsqueda (debería haber buscado antes :) y hay una publicación de blog en iDev Recipes que describe exactamente lo que quería: http: // idevrecipes.com/2010/12/28/how-do-the-reeder-iphone-app-swipe-up-and-down-between-articles/ – phi

+0

Gracias Irene, eso es muy útil también. La segunda respuesta parece ser más en la dirección en la que estoy pensando, pero este ejemplo me da una respuesta a otra pregunta, permitiendo que un menú desplegable vuelva a la lista (como alternativa al botón Atrás) –

Respuesta

2

Esto no es un secreto, Apple proporciona el código de ejemplo llama la PageControl que demuestra exactamente lo que quiere lograr:

Esta aplicación muestra principalmente el uso de la funcionalidad de paginación de UIScrollView utilizar el desplazamiento horizontal como mecanismo para navegar entre diferentes páginas de contenido.

Lo implementé en many of my apps.

+0

Una vista rápida es lo que esperaba del PageControl, pero no tuve la oportunidad aún de tener una mirada profunda. Pero, ¿eso significaría que en lugar de cargar la vista detallada XIB cuando se selecciona una celda, cargué un nuevo ViewController y paso la referencia a la celda seleccionada y allí construí el detailedView (y en la inicialización también cargué las detailViews al lado)? –

+0

La "vista de detalles" es una vista de desplazamiento que contiene todas las vistas de detalles, la carga al darle un índice y, mientras tanto, carga otras imágenes de forma que cuando el usuario se desliza, las otras vistas están listas para mostrarse. Eche un vistazo al código de muestra y verá lo que tiene que hacer. No contiene mucho código. –

2

La pantalla de inicio iphone (trampolín) funciona con una vista de desplazamiento establecida en paginación habilitada.

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width, self.view.frame.size.height)]; 
[scrollView setPagingEnabled:YES]; 

Entonces, digamos que hay dos páginas de aplicaciones para deslizar a través de - ajusta el tamaño de contenido de la vista de desplazamiento para el doble del ancho de la vista:

[scrollView setContentSize:CGSizeMake(self.view.frame.size.width*2, self.view.frame.size.height)]; 

Y eso cómo se hace . :) No sé si es lo mismo para MobileRSS-APP.

Cosas a tener en cuenta:

  1. Ésta no es la forma predeterminada una vista de tabla funciona. Es posible que Apple rechace tu aplicación. Una vista de tabla debe funcionar haciendo clic.

  2. Probablemente podría replicar la funcionalidad sin usar una vista de desplazamiento utilizando los métodos toques y el controlador de navegación. Un buen tutorial que describe cómo detectar golpes en su vista está aquí: http://www.dosomethinghere.com/2009/07/23/simple-swipe-detection-in-the-iphone-sdk/

En el último método en el que el tutorial donde se encuentra la NSLog ("derecho golpe") podría reemplazar eso con [self.navigationController popViewControllerAnimated:YES] que replicar presionando el botón "Atrás" en la barra de navegación.

No sé lo que podría hacer para deslizar hacia la izquierda, aunque ... si quisiera hacer esto en la vista de tabla, tendrá que hacer algunas matemáticas complicadas para determinar qué tan lejos se ha desplazado la vista de tabla . O puede probar los eventos táctiles en las celdas, pero eso es algo en lo que tendrá que mirar. :)

+0

¡Gracias por tu respuesta! En cuanto a su comentario sobre el comportamiento predeterminado de la tabla, creo que Luuk quiere el desplazamiento para la vista de detalles, y no para la vista de tabla en sí, así que parece seguro para mí ... – phi

Cuestiones relacionadas