28

Estoy tratando de crear una especie de menú "modo de juego" similar al utilizado por el juego "Cortar la cuerda" para seleccionar el paquete de nivel:UIScrollView con paginación + mostrando parte de las páginas anteriores/siguientes

Cut the Rope menu

lo que yo quiero, en particular, es lograr el mismo efecto de mostrar el "elemento actual" (en este caso, el elemento "2. Tela Box") además de un poco de la anterior y los siguientes elementos (para asegurarse de que el usuario sepa que hay más modos disponibles al desplazarse), con la paginación habilitada (para hacer que la vista de desplazamiento se "centre" automáticamente en estos elementos).

Esto parece un trabajo natural para un UIScrollView con la paginación habilitada, sin embargo, según la documentación, parece que la paginación se produce en los múltiplos de los límites de la vista.

Entonces: si la paginación ocurre en múltiplos de los límites de la vista, ¿hay alguna forma de lograr este efecto con un UIScrollView?

El hecho de que veamos el ancho total de la pantalla sugeriría que el ancho del marco de UIScrollView sería 320px en este caso, pero cada elemento individual tendría que ser más pequeño que eso para mostrar ese poco del anterior y los siguientes artículos, estropeando así la paginación ...

Respuesta

43

Para su referencia, puede ver una implementación de muestra de un control de página desde aquí. https://developer.apple.com/library/content/samplecode/PageControl/Introduction/Intro.html

Para la aplicación que desee, para su sorpresa, el ancho de la ScrollView es en realidad menor que 320 (o 480). La propiedad mágica para establecer es:

scrollView.clipsToBounds = NO 

El único problema con esta implementación es que el ScrollView llegar hay eventos táctiles si el contacto está fuera de los límites de la ScrollView. Esto puede arreglarse pasando su evento padre HitTest a scrollView.

Sólo para enlazar a una mejor explicación: UIScrollView horizontal paging like Mobile Safari tabs

ligeramente diferente de lo que yo recomiendo, pero hace lo mismo.

Editar:

Tengo un proyecto de pequeñas llamadas LXPagingViews que hace lo anterior, es de esperar en un hotel de la manera caja (No me deje una solicitud de extracción o de retroalimentación en cuestión): https://github.com/lxcid/LXPagingViews

+1

perfecto ! ¡Gracias! –

+0

¿Cómo apoyaríamos el zoom en este tipo de vista de página? –

+0

@lxcid usted es mi HERO :) – abbood

Cuestiones relacionadas