Comment faire des gestes de pincement sur l'iPhone?
Comment mettre en œuvre des gestes de pincement sur l'iPhone? Je suis familiarisé avec l'utilisation des événements tactiles sur l'iPhone, mais je suis très paresseux et ne veulent pas ré-inventer la roue pour quelque chose d'aussi grande que le PINCEMENT des gestes...le code Source ou des liens seraient utiles.
source d'informationauteur RexOnRoids
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour mettre en œuvre vous-même à l'aide de quelques notions de mathématiques de base.
Ceux qui sont le délégué des méthodes que vous avez besoin pour mettre en œuvre dans votre application.
Vous avez besoin pour obtenir la distance entre les deux touches, puis de calculer les variations de la distance dans votre propre code.
L'équation mathématique que vous utilisez pour obtenir la distance est appelée la produit scalaire
Je veux juste faire remarquer que l'équation qu'ils utilisent dans la cité tutoriel est incorrect.
J'ai mis à jour pour inclure la valeur absolue qui est oubliée dans le tutoriel.
C'est le produit scalaire:
Edit:
J'ai fait une erreur dans ma réponse précédente....il a été un moment depuis que j'ai fait tout ce genre de mathématiques.
Si vous n'avez pas de racine carrée du résultat, vous n'obtiendrez pas la vraie distance entre les points. Ceci est appelé le calcul de l'ampleur entre les deux vecteurs.
C'est la bonne façon de le faire. Si vous souhaitez omettre la racine carrée, vous n'aurez pas la distance exacte entre les deux points.
Si vous n'avez pas la place d'y répondre, votre code fonctionne, mais ça va être à l'aide de mesures qui sont beaucoup plus grandes que les valeurs réelles. Donc à l'avenir si vous avez besoin pour obtenir la distance entre les deux points, il sera de retour quelque chose comme 90000 à la place de la distance en pixel qui serait 300px.
Assez sûr que les solutions présentées ici ont été remplacés, en faveur de l'utilisation de la nouvelle UIPinchGestureRecognizer classe dans iOS 3.2 et versions ultérieures.
hmmm.....il semble que certaines personnes sont extrêmement confus sur la façon d'utiliser les mathématiques de base. le produit scalaire est totalement irrelavent et confond tout simplement les questions. point prod entre 2 vecteurs est utilisé pour calculer l'angle entre eux.
Vous avez réellement besoin d'pythagorus théorème. Dot a RIEN à faire avec la conclusion de la distance entre les points - seulement pythagorous!
Si vous êtes à la recherche d'un exemple de code simple de la geste de pincement, j'utilise la méthode décrite par Brock dans l'exemple d'application Je décris ici (dans l'avant-dernière et la dernière version de l'application sur la page). La pincer les gestes sont utilisés à l'échelle d'un couple de Core Animation des calques dans cet exemple.
Tous qu'il décrit comme la mesure de la distance de calcul est tout simplement le Théorème de Pythagore appliqué entre les deux points (avec X et Y des distances comme les deux faces d'un triangle rectangle).