2010-12-04 2 views
24

Betrachten Sie einen Bildschirmpunkt (CGPoint) und eine Ansicht (UIView), die sich innerhalb der Ansichtshierarchie befindet (es kann eine Unteransicht anderer Ansichten sein).CGPoint relativ zur Ansicht

Wie können Sie den Punkt relativ zu den Koordinaten der Ansicht in einen Punkt konvertieren?

Antwort

52

Zunächst koordiniert den Punkt von Bildschirm umwandeln zu den Koordinaten des Hauptfensters:

UIWindow *mainWindow = [[UIApplication sharedApplication] keyWindow]; 
CGPoint pointInWindowCoords = [mainWindow convertPoint:pointInScreenCoords fromWindow:nil]; 

Zweitens den Punkt aus dem Fenster coords konvertieren coords anzuzeigen:

CGPoint pointInViewCoords = [myView convertPoint:pointInWindowCoords fromView:mainWindow]; 
+0

Dank Ole! Das hat den Trick gemacht. – hpique

+0

Ich wünschte, ich wüsste das vor ein paar Wochen :) – jowie

+1

+1 - das völlig meinen Speck gerettet, nachdem ich mit meiner eigenen, was sich als, Reimplementierung von genau das getan hatte. Nett! :) – Olie