在iPhone屏幕上获取UI元素的X / Y坐标 - 不是UIView?

时间:2012-12-31 20:25:49

标签: ios screen

据我所知,为了获取UI元素的x或y坐标,您可以使用button.center.y或self.view.frame.size.height来获取UIView的高度。但是,如果我理解这一切,所有这些都在UIView的范围内。

如何根据iPhone屏幕本身获取相同的信息?

可能是这样的:

screen.view.frame.size.height

提前致谢。

编辑:我的UIElements在UIScrollView上。

1 个答案:

答案 0 :(得分:6)

将点从视图的坐标系转换为封闭窗口的坐标系,然后将该点从窗口转换为屏幕。 使用-[UIView convertPoint:toView:]-[UIWindow convertPoint:toWindow:]

 UIWindow* myWindow = myView.window;
 CGPoint pointInWindow = [myView convertPoint:pointInMyView toView:myWindow];
     // note: toView:nil also works
 CGPoint pointInScreen = [myWindow convertPoint:pointInWindow toWindow:nil];

顺便提一下,重要的一点是:centerframe等视图属性与视图的 superview的坐标系相关。因此,要将视图的中心转换为屏幕:

 CGPoint pointInWindow = [myView.superview convertPoint:myView.center toView:nil];
 CGPoint pointInScreen = [myView.window convertPoint:pointInWindow toWindow:nil];