隐藏UIStatusBar会在屏幕上留下空蓝条

时间:2011-08-26 19:12:14

标签: objective-c ios uiviewcontroller orientation uistatusbar

我有一个人像iPhone应用程序,它有一个隐藏的导航栏控制视图之间的流量。在一个视图中,我需要将视图旋转90度到横向,我想隐藏状态栏。

问题是,当状态栏被正确隐藏时,它会在状态栏所在的屏幕顶部留下一个空的浅蓝色条。我的观点实际上位于此栏下,填满了屏幕。

我尝试过使用视图的大小,但它已经设置为屏幕的完整大小。这个蓝色条似乎超出了我的观点。

可能是因为我隐藏了导航栏和状态栏吗?

任何帮助,非常感谢。

Dunc

1 个答案:

答案 0 :(得分:3)

如果您正在使用隐藏导航栏的UINavigationController(UINavigationBar本身不执行任何操作),则需要在窗口中调整导航控制器的框架,而不是框架视图控制器在导航控制器中的视图。这是您的视图层次结构:

window (root view)
  - statusBar
  - navigation controller's view
    - view controller's view

隐藏状态栏时在视图控制器中尝试此操作:

[[[self navigationController] view] setFrame:[[UIScreen mainScreen] bounds]];

或者,如果你想使用窗口的框架:

[[[self navigationController] view] setFrame:[[[UIApplication sharedApplication] keyWindow] bounds]];