CGPoint相对于视图

hpi*_*que 24 iphone uiview cgpoint ios

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

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

Ole*_*ann 54

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

UIWindow *mainWindow = [[UIApplication sharedApplication] keyWindow];
CGPoint pointInWindowCoords = [mainWindow convertPoint:pointInScreenCoords fromWindow:nil];
Run Code Online (Sandbox Code Playgroud)

其次,将点从窗口坐标转换为视图坐标:

CGPoint pointInViewCoords = [myView convertPoint:pointInWindowCoords fromView:mainWindow];
Run Code Online (Sandbox Code Playgroud)