スクリーンポイント(CGPoint)とビュー(UIView)について考えてみます。これは、ビュー階層内のどこかにあります(他のビューのサブビューの場合もあります)。
ポイントをビューの座標を基準にしたポイントに変換するにはどうすればよいですか?
まず、ポイントを画面の座標からメインウィンドウの座標に変換します。
UIWindow *mainWindow = [[UIApplication sharedApplication] keyWindow];
CGPoint pointInWindowCoords = [mainWindow convertPoint:pointInScreenCoords fromWindow:nil];
次に、ポイントをウィンドウ座標からビュー座標に変換します。
CGPoint pointInViewCoords = [myView convertPoint:pointInWindowCoords fromView:mainWindow];