2010-12-04 15 views
24

Considere un punto de pantalla (CGPoint) y una vista (UIView), que está en algún lugar dentro de la jerarquía de vista (puede ser una subvista de otras vistas).CGPoint relativo a la vista

¿Cómo se puede convertir el punto en un punto relativo a las coordenadas de la vista?

Respuesta

52

En primer lugar, convertir el punto de coordenadas de pantalla a las coordenadas de la ventana principal:

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

En segundo lugar, convertir el punto de coordenadas de la ventana para ver las coordenadas:

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

Gracias Ole! Eso hizo el truco. – hpique

+0

Desearía haberlo sabido hace un par de semanas :) – jowie

+1

+1 - esto ha salvado por completo mi tocino, después de haber estado jugando con el mío, lo que resultó ser, la reimplementación de eso exactamente. ¡Bonito! :) – Olie

Cuestiones relacionadas