最近写个demo 发现 现在的 iOS对于状态栏的显示以及颜色 出来了两套方法 已经 加载launch的时候的显示 或者隐藏 综合三个 结合在一起 就有点复杂 所以整理下 方便以后使用
1 首先来谈一下 在加载launch 的时候 就是启动屏的时候的 状态栏的 隐藏与展示

其实就是 这里 选择的问题 勾选上就会发现 当启动页的时候 状态栏会先隐藏 然后在显示出来 在info文件里面 就是这个字段

以上是 关于启动页的时候状态栏隐藏 还是现实的问题 .
下面是 关于状态栏 在正常VC里现实还是隐藏的问题
如果想要用代码控制 全局的状态栏 隐藏还是显示 或者是单独页面的隐藏 显示 一共有两种方式 不过不管哪种方式 都需要我们在info文件里面 添加字段 View controller-based status bar appearance

1. View controller-based status bar appearance这个字段 是bool 值 如果设置为 NO 那么控制 状态栏 显示与否 显示的白色 还是黑色 就用下面的方法
[UIApplication sharedApplication].statusBarHidden= NO;
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
此方法 是个全局方法 所以 你可以在任何地方用 这就可以实现 我们如果再启动屏幕的时候 隐藏了 状态栏 那我们就可以在 didFinishLaunchingWithOptions 里面 让电池栏显示出来 显示什么颜色 UIStatusBarStyleLightContent 白色 UIStatusBarStyleDefault 黑色
(这里有个坑 那就是 当你在info文件里面 加入了这个View controller-based status bar appearance 之后 如果你在启动页 加载的时候 选择了 hide status bar 那么电池栏 就不会出现了 你需要主动调用 [UIApplication sharedApplication].statusBarHidden= NO; 让电池栏显示出现 )
2 就是 当你 View controller-based status bar appearance 这个bool 值 给 yes 的时候 那么控制状态栏显示与否 显示的颜色 1 方法 就会失效 需要用到一下方法 (以下方法 是需要在 viewcontroller 里面重写 父类方法 实现的 以为所有vc 都需要实现 所以你可以 在baseviewcontroller 里面 实现下面俩方法 来控制全局的状态栏 显示的颜色)
- (BOOL)prefersStatusBarHidden {
return YES;
}
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
然后 针对于单独的viewcontroller 特殊的颜色 你可以在具体vc里重写 上面俩方法
特殊 如果你有 navagationController 作为视图容器 那么你还需要一个navigationController 作为过渡 父类 在里面 写出 下面俩方法
- (UIStatusBarStyle)preferredStatusBarStyle {
UIViewController*topVC =self.topViewController;
return [topVC preferredStatusBarStyle];
}
- (BOOL)prefersStatusBarHidden {
UIViewController*topVC =self.topViewController;
return [topVC prefersStatusBarHidden];
}
网友评论