【问题标题】:Runtime Hide / Show Status Bar iOS 9+运行时隐藏/显示状态栏 iOS 9+
【发布时间】:2017-12-03 15:46:32
【问题描述】:

我有一个应用程序,其中隐藏/显示状态栏并即时切换其样式很重要。以前,使用以下调用非常容易:

[[UIApplication sharedApplication] setStatusBarHidden:NO];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

但它们已被弃用,我不太了解新方法的工作原理。我可以通过将以下行添加到 plist 来设置样式和初始可见性:

 View controller-based status bar appearance = YES

然后将以下方法添加到我的视图控制器中:

 - (UIStatusBarStyle)preferredStatusBarStyle
 {
     return UIStatusBarStyleDefault;
 }

 - (BOOL)prefersStatusBarHidden
 {
     return NO;
 }

这在整个视图控制器上运行良好(作为在视图初始化时调用的静态设置),但我无法动态更改它们,这是我需要的。

我怎样才能做到这一点?

【问题讨论】:

    标签: ios iphone xcode6 ios9 statusbar


    【解决方案1】:

    我讨厌回答自己的问题,但是在进行了一些挖掘之后,我发现了如何手动调用该方法。首先,我创建了一个可以即时切换的 BOOL 变量,然后在 prefersStatusBarHidden 方法中返回。

     - (BOOL)prefersStatusBarHidden
     {
         return isStatusBarHidden;
     }
    

    然后,每当我想隐藏/显示状态栏时,我都会更改 isStatusBarHidden 的值并强制视图检查其状态栏是否需要像这样更新:

     isStatusBarHidden = NO;
     [self setNeedsStatusBarAppearanceUpdate];
    

    在运行 iOS9 及更高版本的设备上非常适合我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-29
      • 1970-01-01
      相关资源
      最近更新 更多