iOS项目开发实战--基本设置(一)UIStatusBar

作者: Roy_Liang | 来源:发表于2016-08-16 18:05 被阅读286次

    • 隐藏启动画面(LaunchScreen)的状态栏(UIStatusBar)
    • 设置UIStatusBar状态栏颜色(UIStatusBarStyle)
    • 设置UIStatusBar状态栏隐藏
    • 设置某个页面状态栏的颜色
    • 状态栏的动画UIStatusBarAnimation

    1. 隐藏启动画面(LaunchScreen)的状态栏(UIStatusBar)

    隐藏启动画面状态栏

    2. 设置UIStatusBar状态栏颜色(UIStatusBarStyle)

    • 方法一:
      根视图控制器实现方法
    -(UIStatusBarStyle)preferredStatusBarStyle {
        return UIStatusBarStyleLightContent;
    }
    
    • 方法二:

    (1) 如图设置Status Bar Style


    (2) info列表里添加View controller-based status bar appearance 并设置为NO

    注意:
    该方法设置View controller-based status bar appearance为NO后,
    无法使用代码的方式改变状态栏颜色和是否隐藏
    不能设置启动画面隐藏状态栏,否则整个项目的状态栏都隐藏了

    3. UIStatusBar状态栏隐藏

    方法一:

    根视图控制器实现方法

    -(BOOL)prefersStatusBarHidden {
        return YES;
    }
    

    方法二:
    (1)


    (2) info列表里添加View controller-based status bar appearance 并设置为NO

    注意:
    该方法设置View controller-based status bar appearance为NO后,相关代码设置不再起作用

    4. 设置某个页面状态栏的颜色

    (1)在根视图控制器实现方法:

    -(UIViewController *)childViewControllerForStatusBarStyle {
       return self.topViewController;
    }
    

    (2)在某个页面实现方法:

    -(UIStatusBarStyle)preferredStatusBarStyle {
        return UIStatusBarStyleLightContent;
    }
    

    5. 状态栏的动画UIStatusBarAnimation

    需要将setNeedsStatusBarAppearanceUpdate方法放在UIView动画里

    实现方法:

    -(UIStatusBarAnimation)preferredStatusBarUpdateAnimation {
        return UIStatusBarAnimationFade;
    }
    

    动画代码:

    [UIView animateWithDuration:2.0 animations:^{
        [self setNeedsStatusBarAppearanceUpdate];
    }];
    
    总结

    1.优先首选的状态栏样式

    -(UIStatusBarStyle)preferredStatusBarStyle {
        return UIStatusBarStyleLightContent;
    }
    

    2.覆盖上面优先首选的方法

    -(UIViewController *)childViewControllerForStatusBarStyle {
       return self.topViewController;
    }
    

    实现此方法,将会调用 self.topViewController的preferredStatusBarStyle方法
    视图控制器容器基本就是UINavigationController和UITabBarController
    而发现在UITabBarController实现上边两个方法不起作用
    所以一般是在UINavigationController里实现2方法,所以此处返回.topViewController

    3.隐藏和覆盖隐藏(指定调用某个页面的隐藏方法)
    prefersStatusBarHidden
    方法和childViewControllerForStatusBarHidden
    同上1.2.,一个是样式,一个是隐藏

    4.动画风格
    preferredStatusBarUpdateAnimation
    方法里指定动画风格

    5.刷新状态栏和动画刷新状态栏
    调用- setNeedsStatusBarAppearanceUpdate
    方法刷新
    将此方法放在动画代码里即有动画效果

    Demo请点击:

    GitHub上的Demo~


    end~愿您有所收获



    相关文章

      网友评论

      本文标题:iOS项目开发实战--基本设置(一)UIStatusBar

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