ios - doesn - uiscrollview swift programmatically
UIScrollView con paginaciĆ³n+mostrando parte de las pĆ”ginas anteriores/siguientes (1)
Intento crear un tipo de menú de "modo de juego" similar al utilizado por el juego "Cortar la cuerda" para seleccionar el paquete de nivel:
Lo que quiero en particular es lograr el mismo efecto de mostrar el "elemento actual" (en este caso, el elemento "2. Caja de tela") más un poco de los elementos anteriores y siguientes (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 UIScrollView con la paginación habilitada, sin embargo, según la documentación, parece que la paginación se produce en 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 todo el ancho de la pantalla sugeriría que el ancho del marco de UIScrollView sería 320px en este caso, pero cada elemento individual debería ser más pequeño que eso para poder mostrar ese poco de los elementos anteriores y siguientes. estropeando la paginación ...
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 implementación que desea, para su sorpresa, el ancho de la vista de desplazamiento 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 la vista de desplazamiento no recibe eventos táctiles si el toque está fuera de los límites de scrollView. Esto puede arreglarse pasando su evento padre HitTest a scrollView.
Solo para enlazar a una mejor explicación: UIScrollView paginación horizontal como pestañas Mobile Safari
Ligeramente diferente de lo que recomiendo, pero hace lo mismo.
Editar:
Tengo un pequeño proyecto llamado LXPagingViews que hace lo anterior, con suerte de una manera inmediata (Do Drop me a pull request o feedback en cuestión): https://github.com/lxcid/LXPagingViews