Me gustaría reproducir el comportamiento flick-to-scroll de UIScrollView, pero no quiero usar (o no puedo usar) esa clase. ¿Que puedo hacer?¿Cómo puedo reproducir el comportamiento flick-to-scroll del iPhone UIScrollView en mi propia vista personalizada?
Respuesta
Bien, he respondido esto implementando mi propia biblioteca que captura la dinámica de UIScrollView.
Lo que es útil acerca de mi código es que es independiente del sistema de coordenadas, la velocidad de animación y las clases particulares de UI que está utilizando. Se puede anidar fácilmente en una clase de vista personalizada de su elección.
El comportamiento del flick-to-scroll predeterminado del iPhone es interesante. Si mantienes el dedo hacia abajo durante un tiempo prolongado y lo mueves en varias direcciones, verás que solo la última dirección se usa para calcular el movimiento de desplazamiento.
Si intenta construir este código usted mismo, sin embargo, descubrirá rápidamente que el simple uso de los dos últimos puntos para calcular la dirección del movimiento no lo va a cortar. En cambio, mi código mantiene un breve historial de toques y utiliza la interpolación lineal para determinar dónde habría "tocado" el toque hace algún tiempo. Este punto interpolado se usa como base para calcular el vector de movimiento. Esto conduce a una interacción muy agradable.
El código está disponible en github, aquí: http://gist.github.com/100855. Se libera bajo la licencia BSD.
Respondió su propia pregunta, con un código bastante complicado, en 2 minutos después de haberla preguntado. Es un código interesante, ¡está bien! –
Sí, no sabía si eso era kosher para Stack Overflow pero desde que descubrí que no soy el único que lo buscaba, pensé que sería útil. ¿Hay un foro mejor? –
¿Qué pasa con UIScrollView no funcionó para usted? Esa clase es bastante flexible, ...
Tengo una vista de OpenGL para un juego y quería poder controlar la ventana gráfica de una manera similar a la de UIScrollView ... –
de Dave, veo que has respondidos a su propia pregunta con algo de código, pero, no estableciendo el siguiente le dará lo que necesita:
myScrollView.bounces = YES;
myScrollView.pagingEnabled = YES;
myScrollView.directionalLockEnabled = YES;
En concreto, se Parece que ha vuelto a implementar directionLockEnabled
. Quizás entender por qué no puedes usar UIScrollView es el problema más interesante :-)
Ver mi comentario arriba. Estoy tratando de reproducir el comportamiento en un contexto donde UIScrollView no puede ir (o, al menos, no debería ir) –
(Y: debo señalar que lo que hice NO es lo mismo que simplemente establecer algunas propiedades en una vista de desplazamiento. Si eso es lo que tenía que hacer, bueno, lo habría hecho. :-) –
... y estoy interesado en qué es eso ;-) –
¡Esto es genial! Lo he usado en una aplicación donde mi vista desplazable equivale a un día de datos gráficos en un rango de 1902-2037, por lo que un UIScrollView no sería eficiente.
- 1. ¿Puedo poner mi propia aplicación solo en mi iPhone?
- 2. Implementando mi propia vista previa de impresión?
- 3. ¿Cómo puedo crear mi propia UITabBar?
- 4. ¿Cómo reproducir el comportamiento de desplazamiento UISearchBar en Notes.app?
- 5. ¿Cómo obtener el comportamiento de la pantalla de inicio de arrastrar a bin, en mi propia aplicación?
- 6. ¿Cómo abrir la aplicación iphone mail desde mi propia aplicación?
- 7. iPhone UIScrollView/setContentOffset rareza
- 8. contentOffset en UIScrollView después de la rotación del iPhone
- 9. Gris vista en iphone, ¿cómo?
- 10. ¿Cómo puedo obtener el tamaño del lienzo de una vista personalizada fuera del método onDraw?
- 11. iPhone UIScrollView Speed Check
- 12. La animación en la vista de OpenGL ES se congela cuando se arrastra UIScrollView en el iPhone
- 13. Vista personalizada en el diseño xml
- 14. Cómo deshabilitar la interacción del usuario en una vista personalizada
- 15. ¿Cómo puedo desarrollar mi propia biblioteca de Java?
- 16. ¿Cómo reproducir el video usando "HTTP Live Streaming" en iphone?
- 17. UIScrollView scrollRectToVisible a velocidad personalizada
- 18. ¿Cómo puedo anidar un UIScrollView dentro de UIScrollView para que el usuario pueda desplazar el UIScrollView interno?
- 19. cómo reproducir el video de ustream en iphone sdk?
- 20. ¿Cómo accedo a layout_height desde mi vista personalizada?
- 21. Graph API/FQL ¿Cómo eliminar mi propia aplicación del usuario?
- 22. ¿Cómo puedo obtener el nivel de zoom actual en UIScrollView?
- 23. comportamiento SQLite en INSERT en el iPhone
- 24. iphone - previene que uiscrollview se desplace por el tacto
- 25. Cómo excluir mi propia actividad del selector Activity.startActivity (Intent)?
- 26. Reproducir sonidos en iPhone SDK?
- 27. vista personalizada
- 28. UIScrollView deshabilita el desplazamiento mientras gira en iPhone/iPad
- 29. ¿Cómo puedo usar UIScrollView?
- 30. reproducir dos videos en iPhone simultáneamente
Nota: La pregunta se refería a una vista OpenGL – Thanks
Es cierto, en mi caso estaba pensando en las vistas OpenGL. Sin embargo, vea mi respuesta a Roger Nolan a continuación: creo que hay muchos casos interesantes que no pertenecen a OGL. –