前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS开发·状态栏设置技巧2:更新状态栏

iOS开发·状态栏设置技巧2:更新状态栏

作者头像
陈满iOS
发布2018-10-12 10:07:32
1.6K0
发布2018-10-12 10:07:32
举报
文章被收录于专栏:陈满iOS陈满iOS
  • 前提背景

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。读者可以自行思考。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.10.11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档