iOS最新StatusBar状态栏设置方式

作者: GGRay | 来源:发表于2017-09-14 16:31 被阅读134次

    之前的大多数设置状态栏的方法已经被遗弃或者无效,这里记录下最新设置statusBar的方法。

    1. 启动页隐藏状态栏

    隐藏: 在info.plist中 添加 View controller-based status bar appearance 的key 然后值 设置成 YES【注意 不是NO】

    2792221B-BCE6-46C3-B945-4C4A1CB25994.png

    然后勾选一下:

    5B022740-B001-4F43-8884-921DF981FD5B.png

    2.界面中修改状态栏的样式或者动画 并显示statusBar
    在这个ViewController中重写:

    • (BOOL)prefersStatusBarHidden
      {
      return NO;
      }

    • (UIStatusBarStyle)preferredStatusBarStyle
      {
      return UIStatusBarStyleLightContent;
      }

    • (UIStatusBarAnimation)preferredStatusBarUpdateAnimation
      {
      return UIStatusBarAnimationSlide;
      }

    3.有时你发现上述方法无效,断电根本不走,其实是因为你用了自定义的navigation “包裹”了你的VC:
    解决方法:在你自定义的navigationController中重写:

    • (BOOL)prefersStatusBarHidden
      {
      UIViewController* topVC = self.topViewController;
      return [topVC prefersStatusBarHidden];
      }
      同理 StatusBarStyle StatusBarUpdateAnimation ...
      这样就能找到你当前的VC 并执行相应的方法

    4.如果这个时候 还是不行,就要看看你view当前的VC是不是还在某个viewController的“包裹”下:
    比如我的主页【dashBoardVC】就在我的RootViewController中添加的 那么 同理, 在你的RootViewController中 也要重写 :

    • (BOOL)prefersStatusBarHidden
      {
      if (self.childViewControllers.count) {
      UIViewController *topCtrl = self.childViewControllers.firstObject;
      if (topCtrl) {
      return [topCtrl prefersStatusBarHidden];
      }
      }

      return NO;
      }

    • (UIStatusBarStyle)preferredStatusBarStyle
      {
      if (self.childViewControllers.count) {
      UIViewController *topCtrl = self.childViewControllers.firstObject;
      if (topCtrl) {
      return [topCtrl preferredStatusBarStyle];
      }
      }

      return UIStatusBarStyleDefault;
      }

    • (UIStatusBarAnimation)preferredStatusBarUpdateAnimation
      {
      if (self.childViewControllers.count) {
      UIViewController *topCtrl = self.childViewControllers.firstObject;
      if (topCtrl) {
      return [topCtrl preferredStatusBarUpdateAnimation];
      }
      }
      return UIStatusBarAnimationSlide;
      }

    这就是最新的设置statusBar的一些属性的问题了,如果有问题,可以继续讨论。

    相关文章

      网友评论

        本文标题:iOS最新StatusBar状态栏设置方式

        本文链接:https://www.haomeiwen.com/subject/ykmdsxtx.html