CGPoint relative to view
Asked Answered
S

1

24

Consider a screen point (CGPoint) and a view (UIView), which is somewhere inside the view hierarchy (it can be a subview of other views).

How can you convert the point to a point relative to the view's coordinates?

Stoeber answered 4/12, 2010 at 10:51 Comment(0)
A
54

First, convert the point from screen coordinates to the coordinates of your main window:

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

Second, convert the point from window coords to view coords:

CGPoint pointInViewCoords = [myView convertPoint:pointInWindowCoords fromView:mainWindow];
Allium answered 4/12, 2010 at 12:9 Comment(2)
Wish I'd known that a couple of weeks ago :)Across
+1 -- this totally saved my bacon, after I'd been messing with my own, what turned out to be, reimplementation of exactly that. Nice! :)Marital

© 2022 - 2024 — McMap. All rights reserved.