¿Cómo se implementan los gestos de pellizco en el iPhone? Estoy familiarizado con el uso de eventos táctiles en el iPhone, pero soy extremadamente flojo y no quiero volver a inventar la rueda para algo tan generalizado como los gestos de PINCH ... El código fuente o enlaces a ellos serían útiles.¿Cómo hacer gestos de pellizco en el iPhone?
Respuesta
Debe implementarlo usted mismo usando algunos cálculos básicos.
(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
Esos son los métodos delegados que debe implementar en su aplicación.
Necesita obtener la distancia entre los dos toques, luego calcule los cambios en la distancia en su propio código.
La ecuación matemática que se utiliza para obtener la distancia se llama el dot product
sólo quiero señalar que la ecuación que utilizan en el tutorial citado es incorrecta. Lo he actualizado para incluir el valor absoluto que se pierde en el tutorial.
Este es el producto escalar:
- (CGFloat)distanceBetweenTwoPoints:(CGPoint)fromPoint toPoint:(CGPoint)toPoint
{
float xDist = fromPoint.x - toPoint.x;
float yDist = fromPoint.y - toPoint.y;
float result = sqrt(pow(xDist,2) + pow(yDist,2));
return result;
}
Editar: he cometido un error en mi respuesta anterior .... que ha pasado un tiempo desde que he hecho alguna de esa clase de matemáticas.
Si no cuadra el resultado, no obtendrá la distancia real entre los puntos. Esto se llama calcular la magnitud entre dos vectores.
Esta es la forma correcta de hacerlo. Si quiere omitir el sqrt, no tendrá la distancia exacta entre los dos puntos.
Si no cuadra la respuesta, su código funcionará pero utilizará medidas que son mucho más grandes que los valores reales. Entonces, en el futuro, si necesita obtener la distancia entre los dos puntos, devolverá algo así como 90000 en lugar de la distancia de píxel real que sería de 300 px.
Ummm ...No estoy seguro de cuánto puede ser útil ese enlace 'producto de puntos' que citó, pero gracias por una respuesta al menos ... – RexOnRoids
Sin él, no puede calcular la distancia entre los dos toques. Es esencial. –
Thx - El código fuente es mucho más fácil de entender en este caso ... No estaba preparado para sentarme e intentar absorber toda una página wiki sobre las complejidades del 'producto gráfico' LOL – RexOnRoids
Si está buscando un ejemplo de código simple del gesto de pellizco, utilizo el método descrito por Brock en la aplicación de ejemplo I describe here (en la penúltima y última versión de la aplicación en esa página). Los gestos de pellizco se usan para escalar un par de capas de Core Animation en ese ejemplo.
Todo lo que describe en cuanto al cálculo de distancia es simplemente el teorema de Pitágoras aplicado entre dos puntos (con las distancias X e Y como las dos caras de un triángulo rectángulo).
hmmm ..... parece que algunas personas están extremadamente confundidas sobre cómo usar las matemáticas básicas. el producto de punto es totalmente irrelevante y solo confunde los problemas. dot prod entre 2 vectores se usa para calcular el ángulo entre ellos.
Realmente necesita utilizar el teorema de pythagorus. No tiene NADA que ver con la búsqueda de distancia entre puntos, ¡solo pitagórico!
dot se puede utilizar para encontrar la distancia entre dos puntos de la siguiente manera: sqrt (punto (p2-p1, p2-p1)) – twerdster
Bastante seguro de que las soluciones presentadas aquí han quedado obsoletas, a favor de usar la nueva clase UIPinchGestureRecognizer en iOS 3.2 y posterior.
No es tan relevante siempre y cuando haya toneladas de <3,2 dispositivos por ahí. – Jonny
- 1. Cómo interpretar los gestos de pellizco del panel táctil para acercar IKImageBrowserView
- 2. Cómo hacer reconocimiento de gestos usando acelerómetros
- 3. Múltiples gestos para UIGestureRecognizers (iPhone, Cocos2d)
- 4. Detección de pellizco en Android
- 5. Gestos multitáctiles en la aplicación web en el escritorio
- 6. iframe escalable por el usuario en el iPhone
- 7. Apagón de pantalla al realizar un gesto de pellizco en MPMoviePlayerController
- 8. ¿Cómo funciona el reconocimiento de gestos?
- 9. ¿Cómo limitar el reconocimiento de gestos de toque de iPhone dentro de una imagen circular?
- 10. escalando imagen en gesto de pellizco
- 11. Límites de escala en el zoom de pellizco de Android
- 12. Reconocimiento de gestos en Android
- 13. Galería de Android con zoom de pellizco
- 14. ¿Cómo hacer un http get en cocoa en el iPhone
- 15. ¿Cómo mantener una imagen dentro de los límites de la pantalla al usar el zoom pellizco y los gestos de arrastre?
- 16. Perdiendo Reconocedores de Gestos en UIPopoverController
- 17. ¿Cómo puedo saber cuándo finaliza un gesto de pellizco (UIGestureRecognizer)?
- 18. Biblioteca de gráficos HTML5 que admite el zoom pellizco
- 19. ¿Las variaciones de gestos en la biblioteca de gestos mejoran el reconocimiento?
- 20. ¿Cómo detectar deslizar hacia la izquierda/derecha en el iPhone?
- 21. acelerómetro Smartphone gestos algoritmos
- 22. ¿Hay una biblioteca de gestos de alto nivel para el desarrollo de iPhone?
- 23. Análisis de gestos de Kinect
- 24. Cómo deshabilitar 4 gestos con los dedos en el iPad?
- 25. Cómo utilizar el mapa de Android para hacer zoom con gesto con la mano (como el iphone)
- 26. Cómo detectar gestos en OpenKinect (con envoltorios de Python)
- 27. Manejo de reconocedores de gestos en iOS6
- 28. ¿Cómo puedo enlazar gestos de teclas en Caliburn.Micro?
- 29. Hacer Actualización de una aplicación para el iPhone en vivo
- 30. cómo listar los reconocedores de gestos activos?
mira esta muestra en el zoom de pellizco http://cocoabugs.blogspot.com/2011/03/pinch-zoom-using-uipinchgesturerecogniz.html –