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 条评论
登录 后参与评论

相关文章

来自专栏高性能服务器开发

libevent源码深度剖析八 集成信号处理

(1)libevent源码深度剖析一 序 (2)libevent源码深度剖析二 Reactor模式 (3)libevent源码深度剖析三 libevent基...

16820
来自专栏有趣的django

Django搭建blog网站(二)

10、页面侧边栏:使用自定义模板标签 我们的博客侧边栏有四项内容:最新文章、归档、分类和标签云。这些内容相对比较固定,且在各个页面都会显示,如果像文章列表或者文...

743100
来自专栏分布式系统进阶

Kafka的日志清理-LogCleanerKafka源码分析-汇总

35740
来自专栏葡萄城控件技术团队

深入解析 DataGrid 过滤功能

过滤是DataGrid这样的表格控件的基本功能之一,也是非常重要的特性。微软提供的标准DataGrid相信大家都很熟悉了。本文要解析的不是标准DataGrid,...

25970
来自专栏西安-晁州

vue.js应用开发笔记

看vue.js有几天了,之前也零零散散的瞅过,不过一直没有动手去写过demo,这几天后台事比较少,一直在讨论各种需求(其实公司对需求还是比较重视与严谨的,一个项...

49410
来自专栏函数式编程语言及工具

PICE(6):集群环境里多异类端点gRPC Streaming - Heterogeneous multi-endpoints gRPC streaming

   gRPC Streaming的操作对象由服务端和客户端组成。在一个包含了多个不同服务的集群环境中可能需要从一个服务里调用另一个服务端提供的服务。这时调用服...

10330
来自专栏田云专栏

webpack原理概述

Entry: 入口,Webpack 执行构建的第一步将从 Entry 开始,可抽象成输入。

65240
来自专栏Albert陈凯

MAC上iTerm 2安装与使用

iTerm2是MAC下最好用的终端工具,并且还是免费的。iTerm2 是配置完毕开箱即用的 tmux,有标签变色、智能选中等特色功能。在日常开发中,我们难免会与...

67520
来自专栏向治洪

iOS项目生成静态库文件(.a)

Objective-c语言有.h .m 文件组成。静态库可以将 .m文件封装成一个.a文件,第三方应用程序只需要拿到这个.a文件和代码对应的.h文件即可使用静态...

25670
来自专栏DannyHoo的专栏

在Xcode的模拟器中的textField中输入中文

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

18920

扫码关注云+社区

领取腾讯云代金券