2013-06-19 109 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); 

假設UIImageView稱爲imageViewUITouch稱爲touchUIImage稱爲image

+0

完美!正是我在找什麼! –

+1

如果UIImage在UIImageView中不完美,並且在UIImage之間存在一些空間,該怎麼辦。我如何才能在UIImage上獲得正確的觀點? – Boyi

+0

@Boyi你將不得不在你的計算中考慮這一點。但是,我不知道這將是可能的。您必須查看圖像的內容模式和大小以確定圖像位於圖像視圖內的位置。使用自動佈局更容易使圖像視圖適合正確的寬高比。 – Fogmeister