专栏首页陈满iOSiOS开发·状态栏设置技巧2:更新状态栏

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

  • 前提背景

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • iOS复习中有关SDWebImage可能知识点总结(2)

    分为内存缓存(利用SDImageCache类的NSCache属性),磁盘缓存(利用NSFileManager),和操作缓存(利用runtime关联的字典属性)。...

    陈满iOS
  • iOS小经验:初始化的方法中不该设置self.view的属性

    结果发现,在执行数据源传值 nextVC.source = [self.source copy]; 代码之前,NextViewController的 viewD...

    陈满iOS
  • iOS· UIGestureRecognizer 与UITouch 的 locationInView方法含义区别

    UIGestureRecognizer 与UITouch 都有一个 locationInView: 方法。

    陈满iOS
  • Python编程思想(30):用 metaclass搞定一批类的特性

    如果希望创建某一批类全部具有某种特征,则可以通过 metaclass来实现。使用 metaclass可以在创建类时动态修改类定义。为了使用 metaclass动...

    蒙娜丽宁
  • 关于 equals 和 hashCode

    2.equals 5.对于 non-null reference x ,满足 x.equals(x) return true。 5. 对于 non-nul...

    shengjk1
  • RabbitMQ(五) ——话题模式

    RabbitMQ(五)——话题模式 (原创内容,转载请注明来源,谢谢) 一、概述 话题模式(topic)可以让队列绑定某一类型的消息,而不仅仅是direct模式...

    用户1327360
  • Maven 虐我千百遍,我待 Maven 如初恋

    在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案...

    zhisheng
  • 用JavaScript实现2+2=5的奥秘

    运行这段代码,首先弹出结果为6的弹出窗口,然后为5,这意味着2+2=5?朋友们知道其中的奥秘吗?

    Jerry Wang
  • Maven 虐我千千遍,我待 Maven 如初恋!

    在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案...

    CCCruch
  • Maven 虐我千百遍,我待 Maven 如初恋

    在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见。Maven的仓库管理、依赖管理、继承和聚合等特性为项目的构建提供了一整套完善的解决方案...

    java思维导图

扫码关注云+社区

领取腾讯云代金券