美文网首页
iOS开发·状态栏设置技巧(2):立刻更新状态栏样式(显隐,颜色

iOS开发·状态栏设置技巧(2):立刻更新状态栏样式(显隐,颜色

作者: 小码僧 | 来源:发表于2018-10-11 13:48 被阅读227次
  • 前提背景

info.plist文件中有个一项:View controller-based status bar appearance:

当这里的值分别为YES,则以 ViewController 的设置为准,即通过preferredStatusBarStyle来设置状态栏。而 ViewControllerstatus bar 的设置优先级高于 application 的设置。

  • 预设好状态栏配置
#pragma mark - 状态栏
- (BOOL)prefersStatusBarHidden
{
    return NO;
}

- (UIStatusBarStyle)preferredStatusBarStyle
{
    CMConfig *config =[CMConfig sharedInstance];
    if (config.isNightMode) {
        return UIStatusBarStyleLightContent;
    }
    return UIStatusBarStyleDefault;
}
  • 激活状态栏更新
- (void) changeStatusMode{
   [self setNeedsStatusBarAppearanceUpdate];
}
  • 跟视图控制器需要重写一下,意思是设置以可见子视图的设置为准:
-(UIStatusBarStyle)preferredStatusBarStyle
{
    return [self.visibleViewController preferredStatusBarStyle];
}

- (BOOL)prefersStatusBarHidden {
    return [self.visibleViewController prefersStatusBarHidden];
}
  • 手动调用状态栏更新
[self preferredStatusBarStyle];
[self prefersStatusBarHidden];

注意的是,有个文献说不能如上手动调用,但经笔者验证,还是可以这样手动调用的。这个文献是https://blog.csdn.net/baohanqing/article/details/51619853。读者可以自行思考。

相关文章

网友评论

      本文标题:iOS开发·状态栏设置技巧(2):立刻更新状态栏样式(显隐,颜色

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