我正在将 subview 添加到我的 View Controller 的顶部,将添加的框架的原点 y 设置为 0
aView.frame.origin.y = 0.0;
在一个实例中, View 出现在状态栏后面。这可以通过设置 origin.y = 20.0;
无论原因是什么,我如何检测是否需要将其设置为 20.0?换句话说,如何知道页面顶部是否在状态栏后面?
最佳答案
您可以查看 window.screen.applicationFrame 以查看坐标,以及查看 UIApplication 的 statusBarOrientation 和 statusBarHidden 属性。但是有条件地将您的框架顶部设置为 0 或 20 并不是真正的解决方案 - 您希望您的框架被设置为它可以做正确的事情而无需更改它。 0,0 应始终位于 View 的左上角。
如果您在创建项目时使用了基于 View 的应用程序模板,那么几乎所有内容都应该正确设置 - 只需确保在 XIB 中指定灰色或黑色状态栏即可。
对于直接添加到窗口的以编程方式创建的 View Controller ,您可能需要:
myViewController.frame = window.screen.applicationFrame;
关于objective-c - 检测添加的 subview 的框架原点何时位于状态栏后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5141479/