2012-04-11 4 views
0

Ich habe einen UIImageView und wenn ich es berühren kann ich den Ort der Berührung mit bekommen:Rotated UIImageView touchLocationInView nicht korrekt

[touch locationInView:theUIImageView] 

Das Problem ist, dass, wenn ich drehen, um die UIImageView mit:

theUIImageView.transform = CGAffineTransformMakeRotation(DegreesToRadians(arc4random()%15)); 

Die [touch locationInView:theUIImageView] gibt nicht mehr die korrekte Position des Wasserhahns zurück! *keuchen!

Irgendwelche Vorschläge, wie Sie die real tap location bekommen?

Antwort

-1

Wählen Sie eine andere (möglicherweise übergeordnete, nicht rotierte) Ansicht aus, die in locationInView verwendet werden soll. Wenn Sie von dort ein anderes Koordinatensystem benötigen, können Sie vor der Drehung immer eigene Offsets basierend auf dem Rahmen der UIImageView hinzufügen.

+0

Könnten Sie bitte ausarbeiten? Ich bin mir nicht sicher, was Sie versuchen zu erklären – Parad0x13

+0

Sie rufen locationInView auf, um den Standort in einer Ansicht abzurufen. Sie verwenden Ihre gedrehte Bildansicht, aber Sie können die Position der Berührung in der übergeordneten Ansicht ermitteln, indem Sie sie an locationInView übergeben. – Nick