2013-06-19 3 views
9

Je peux déterminer les coordonnées d'un événement tactile sur un UIImageView. Je dois ensuite convertir ces coordonnées aux coordonnées de l'image affichée - ce qui devrait être différent, car mon image est beaucoup plus grande que l'UIImageView et je redimensionne l'image avec AspectFit.Conversion de coordonnées UIImageView Touch en coordonnées UIImage

Quelle est la meilleure façon de déterminer les coordonnées de l'image d'un événement tactile étant donné les coordonnées de vue d'un UIImageView?

Répondre

12

Quelque chose comme ça devrait vous aider à démarrer.

CGPoint imageViewPoint = [touch locationInView:imageView]; 

float percentX = imageViewPoint.x/imageView.frame.size.width; 
float percentY = imageViewPoint.y/imageView.frame.size.height; 

CGPoint imagePoint = CGPointMake(image.size.width * percentX, image.size.height * percentY); 

En supposant que le UIImageView est appelé imageView le UITouch est appelé touch et le UIImage est appelé image.

+0

Parfait! Exactement ce que je cherchais! –

+1

si UIImage n'est pas parfaitement adapté à UIImageView et qu'il existe un espace entre UIImage. Comment puis-je obtenir le bon point sur l'UIImage? – Boyi

+0

@Boyi vous devrez tenir compte de cela dans votre calcul. Cependant, je ne sais pas comment cela serait possible. Vous devez regarder le mode de contenu et la taille de l'image pour déterminer où se trouve l'image dans la vue de l'image. Il est plus facile de faire en sorte que l'image corresponde au format correct en utilisant la mise en page automatique. – Fogmeister

Questions connexes