我知道为了获取 UI 元素的 x 或 y 坐标,您可以使用 button.center.y 或 self.view.frame.size.height 之类的东西来获取 UIView 的高度)。但是,如果我正确理解了这一切,那么所有这些都在 UIView 的范围内。
就 iPhone 屏幕本身而言,您如何获得相同的信息?
也许是这样的:
screen.view.frame.size.height
提前致谢。
编辑:我的 UIElements 在 UIScrollView 上。
将视图坐标系中的点转换为封闭窗口的坐标系,然后将该点从窗口转换为屏幕。使用-[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
视图的父视图的坐标系相似。因此,要将视图的中心转换为屏幕:
CGPoint pointInWindow = [myView.superview convertPoint:myView.center toView:nil];
CGPoint pointInScreen = [myView.window convertPoint:pointInWindow toWindow:nil];