2013-06-19 18 views
9

UIImageViewでタッチイベントの座標を特定することができます。これらの座標を表示されている画像の座標に変換する必要があります。画像はUIImageViewよりもはるかに大きく、AspectFitで画像を拡大しているため、別の座標にする必要があります。UIImageViewタッチ座標をUIImage座標に変換する

UIImageViewのビュー座標に基づいてタッチイベントのイメージ座標を決定する最適な方法は何ですか?

答えて

12

このようなものは、あなたに行く必要があります。

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); 

UIImageViewimageViewUITouchtouchと呼ばれ、UIImageimageと呼ばれると呼ばれていると仮定。

+0

完璧!まさに私が探していたもの! –

+1

UIImageがUIImageViewに完全に収まらず、UIImageの間にスペースがある場合はどうなりますか? UIImageで正しい点を得るにはどうすればいいですか? – Boyi

+0

@Boyiあなたの計算でそれを考慮する必要があります。しかし、私はそれがどのように可能かはわかりません。画像が画像ビューのどこにあるかを調べるには、コンテンツモードと画像のサイズを確認する必要があります。自動レイアウトを使用して、画像ビューを正しいアスペクト比に合わせるのが簡単になります。 – Fogmeister

関連する問題