据我所知,为了获取UI元素的x或y坐标,您可以使用button.center.y或self.view.frame.size.height来获取UIView的高度。但是,如果我理解这一切,所有这些都在UIView的范围内。
如何根据iPhone屏幕本身获取相同的信息?
可能是这样的:
screen.view.frame.size.height
提前致谢。
编辑:我的UIElements在UIScrollView上。
答案 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];
顺便提一下,重要的一点是:center
和frame
等视图属性与视图的 superview的坐标系相关。因此,要将视图的中心转换为屏幕:
CGPoint pointInWindow = [myView.superview convertPoint:myView.center toView:nil];
CGPoint pointInScreen = [myView.window convertPoint:pointInWindow toWindow:nil];