【问题标题】:Trying to Hide iPhone Status Bar White Space试图隐藏 iPhone 状态栏空白
【发布时间】:2012-10-13 02:43:41
【问题描述】:

我有一个滚动视图,顶部有一个 UIImage,UIImage 有它自己的视图控制器类 滚动视图位于主根控制器上。我将隐藏状态栏方法添加到根控制器,但是当我运行程序时,状态栏消失但留下一个空白,并且视图不会在状态栏空白上增长。我厌倦了其他方法,但我仍然得到相同的空白我还尝试启用垂直滚动,看起来状态栏位于我所有视图的顶部,当我向上滚动时,它一直在状态栏下方上升。

这可能是什么原因造成的?

【问题讨论】:

    标签: iphone


    【解决方案1】:

    您只是隐藏了状态栏,似乎其他组件没有自动扩展以占据该空间。确保在主根控制器下的所有组件中启用了“自动调整子视图大小”。

    如果这没有帮助,您可以尝试在代码中重新定位和调整视图大小。比如:

    CGRect frame = self.view.frame;
    frame.origin.y -= statusBar.height;
    frame.size.height += statusBar.height;
    self.view.frame = frame;
    

    【讨论】:

    • 非常感谢,这解决了我的问题,视图被锁定,而且我的每个视图的大小为 320 X 460,我还将高度更改为 480,对于那些要复制的并粘贴此示例,将 statusBar.height 更改为值 20,这将调整以覆盖状态栏。
    【解决方案2】:

    我遇到了同样的问题,我可以通过添加调用来解决它,

    // Where self == Your View Controller with the status bar hidden 
    [self setWantsFullScreenLayout:YES];
    

    然后我把它放在隐藏状态栏的 View Controller 的 init 方法中。然后我将以下代码添加到视图确实加载或视图将加载方法。

    if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) {
        [[UIApplication sharedApplication] setStatusBarHidden:hide withAnimation:NO];
    } else {  // Deprecated in iOS 3.2+.
        id sharedApp = [UIApplication sharedApplication];  // Get around deprecation warnings.
        [sharedApp setStatusBarHidden:hide animated:NO];
    }
    

    这将允许您拥有一个带有状态栏的视图控制器和一个没有状态栏的视图控制器。例如,照片应用程序就是这样做的。

    【讨论】:

      【解决方案3】:

      只是对具有动态状态栏高度的 JOM 有用解决方案的后续跟进(没有人应该依赖 20 像素的状态栏,如评论所示):

      // fix frame
      CGRect frame = window.frame;
      if( ! [UIApplication sharedApplication].statusBarHidden ) {
          int statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height;
          frame.origin.y += statusBarHeight;
          frame.size.height -= statusBarHeight;
      }
      self.view.frame = frame;
      

      顺便说一句:在我的情况下,我需要重新计算框架并将其调整为可见的状态栏。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-25
        • 1970-01-01
        • 1970-01-01
        • 2017-05-30
        • 1970-01-01
        • 1970-01-01
        • 2018-07-15
        相关资源
        最近更新 更多