2

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

问题是,虽然状态栏被正确隐藏,但它会在状态栏所在的屏幕顶部留下一个空的浅蓝色栏。我的视图实际上位于此栏下方,充满了屏幕。

我尝试过使用视图的大小,但它已经设置为屏幕的完整大小。看来这个蓝色条在我的视野之上。

难道是因为我隐藏了导航栏和状态栏?

任何帮助,非常感谢。

邓克

4

1 回答 1

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]];
于 2011-08-26T19:55:17.040 回答