CGPoint相对于视图

考虑一个屏幕点(CGPoint)和一个视图(UIView),它位于视图层次结构内部(可以是其他视图的子视图)。

如何将点转换为相对于视图坐标的点?

首先,将屏幕坐标点转换为主窗口的坐标:

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

其次,从窗口坐标转换观点坐标:

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