2013-01-11 2 views
0

Je veux dessiner sur un UIImageView, j'utilise touchesMoved et touchesBegan pour cela, cela fonctionne. J'utilise le dispositif de reconnaissance de pincement pour le zoom, cela fonctionne également.Déplacer, mettre à l'échelle et dessiner sur le même UIImageView

Mais comment puis-je le déplacer? parce que si j'utilise le système de reconnaissance de pan, il sera en conflit avec touchesMoved.

Comment puis-je faire pour que le système de reconnaissance de pan ne soit appelé que lorsque l'utilisateur utilise 3 doigts?

Je pense que quelqu'un d'autre a déjà fait face au problème.

Merci

Répondre

1

Utilisez touchesMoved avec deux touches et les utilisateurs peuvent faire glisser l'image avec deux doigts, mais seulement 1 doigt dessineront ... en plus il est jamais une bonne idée d'utiliser 3 doigts partout parce que quelqu'un qui a triple- le tap-to-zoom activé dans leurs appareils, l'accessibilité ne sera pas en mesure d'utiliser les fonctions à trois doigts. (I et beaucoup de mes amis ont ce permis)

Vérifiez tout d'abord que les deux touches sont sur le UIImageView prendre ensuite les x & valeurs y des deux touches et les moyenner pour obtenir le milieu en entre vos doigts. utilisez cette valeur pour le panoramique. Recherchez le changement entre le point milieu moyenné actuel et le point médian moyenné précédent et appliquez cette modification au centre d'images.

image.center = CGPointMake(image.center.x+changeInX, image.center.y+changeInY);

+0

Oui, cela fonctionne, merci! Mais si j'ajoute un pinchGestureRecognizer, touchesMoved sera aussi appelé :(Comment éviter cela? –

+0

Débarrassez-vous de touchesMoved et remplacez-le par des reconnaisseurs swipeGesture ... maintenant vous pouvez faire le balayage unique pour le dessin et double balayage pour le panoramique ... L'API d'Apple fera la distinction entre le pincement/tirage et le balayage à deux doigts –

+0

Sinon, vous devrez faire des calculs et vous ne pourrez pas utiliser le pinchGesture que vous auriez à faire votre propre –

Questions connexes