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

use*_*769 0 screen ios

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

你如何获得iPhone屏幕本身相同的信息?

也许是这样的:

screen.view.frame.size.height
Run Code Online (Sandbox Code Playgroud)

提前致谢.

编辑:我的UIElements在UIScrollView上.

Kur*_*vis 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];
Run Code Online (Sandbox Code Playgroud)

顺便说一句,一个重要的观点:像视图属性centerframe相对于视图的上海华盈的坐标系.因此,要将视图的中心转换为屏幕:

 CGPoint pointInWindow = [myView.superview convertPoint:myView.center toView:nil];
 CGPoint pointInScreen = [myView.window convertPoint:pointInWindow toWindow:nil];
Run Code Online (Sandbox Code Playgroud)