检测添加的子视图的帧的起源何时位于状态栏后面

时间:2011-02-28 11:40:40

标签: objective-c ios

我将子视图添加到视图控制器的顶部,将添加的帧的原点y设置为0

aView.frame.origin.y = 0.0;

在一个实例中,视图显示在状态栏后面。通过设置origin.y = 20.0;

可以轻松纠正此问题

无论原因是什么,如何检测是否需要将其设置为20.0?换句话说,如何判断页面顶部是否在状态栏后面?

1 个答案:

答案 0 :(得分:1)

您可以查看window.screen.applicationFrame以查看坐标,以及UIApplication的statusBarOrientation和statusBarHidden属性。但有条件地将你的框架顶部设置为0或20并不是真正的解决方案 - 你希望你的框架设置好,这样它就可以做到正确的事情,而不必改变它。 0,0应该始终是视图的左上角可见角落。

如果在创建项目时使用了基于视图的应用程序模板,几乎所有内容都应该正确设置 - 只需确保在XIB中指定灰色或黑色状态栏。

对于直接添加到Window的以编程方式创建的视图控制器,您可能需要:

myViewController.frame = window.screen.applicationFrame;