2013-06-19 12 views
9

Jestem w stanie określić współrzędne zdarzenia dotyku na UIImageView. Muszę następnie przekonwertować te współrzędne na współrzędne wyświetlanego obrazu - co powinno być inne, ponieważ mój obraz jest znacznie większy niż UIImageView i skalowuję obraz za pomocą AspectFit.Konwersja współrzędnych dotykowych UIImageView na współrzędne UIIm

Jaki jest najlepszy sposób określenia współrzędnych obrazu zdarzenia dotyku, biorąc pod uwagę współrzędne widoku UIImageView?

Odpowiedz

12

Coś takiego powinno ci pomóc.

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

Zakładając UIImageView nazywa imageViewUITouch nazywa touch i UIImage nazywa image.

+0

Idealnie! Dokładnie to, czego szukałem! –

+1

co jeśli UIImage nie pasuje idealnie do UIImageView i istnieje pewna przestrzeń pomiędzy UIImage. Jak mogę uzyskać właściwy punkt na UIImage? – Boyi

+0

@Boyi musiałbyś to uwzględnić w swoich obliczeniach. Jednak nie wiem, jak to byłoby możliwe. Aby sprawdzić, w którym miejscu obrazu znajduje się obraz, należy sprawdzić tryb zawartości i rozmiar obrazu. Łatwiej, aby dopasować obraz do właściwego współczynnika proporcji za pomocą automatycznego układu. – Fogmeister

Powiązane problemy