iOS设置状态栏颜色
来源:互联网 发布:matlab读取数据和文件 编辑:程序博客网 时间:2024/05/01 15:15
状态栏黑色(默认)风格:UIStatusBarStyleDefault
状态栏白色风格:UIStatusBarStyleLightContent
一、在info.plist中,将View controller-based status bar appearance设为NO
状态栏字体的颜色只由下面的属性设定:
[UIApplication sharedApplication].statusBarStyle
1、在info.plist中,将View controller-based status bar appearance设为NO;
1、在AppDelegate中设置为白色风格:
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
2、在特定的ViewController中做如下设置:
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;}- (void)viewWillDisappear:(BOOL)animated { [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent; [super viewWillDisappear:animated];}
二、在info.plist中,将View controller-based status bar appearance设为YES,或者没有设置。
View controller-based status bar appearance的默认值就是YES。
如果View controller-based status bar appearance为YES。设置[UIApplication sharedApplication].statusBarStyle的值无效。
用下面的方法:
1、在ViewController中重写preferredStatusBarStyle方法。
- (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleDefault;}
2、在viewDidload中调用:
- (void)viewDidLoad { [super viewDidLoad]; [self setNeedsStatusBarAppearanceUpdate];}
但是,当ViewController在Navigation中时,preferredStatusBarStyle方法根本不用被调用。
原因是,[self setNeedsStatusBarAppearanceUpdate]发出后,只会调用NavigationController中的preferredStatusBarStyle方法,ViewController中的preferredStatusBarStyley方法不会被调用。
解决办法有两个:
方法一:设置NavigationBar的barStyle 属性会影响statusBar的字体和背景色。如下:
//status bar的字体为白色,导航栏的背景色是黑色。
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
//status bar的字体为黑色,导航栏的背景色是白色,状态栏的背景色也是白色。
self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
方法二:自定义一个NavigationBar的子类,在这个子类中重写preferredStatusBarStyle方法:
MyNav* nav = [[MyNav alloc] initWithRootViewController:vc];self.window.rootViewController = nav;@implementation MyNav- (UIStatusBarStyle)preferredStatusBarStyle { UIViewController* topVC = self.topViewController; return [topVC preferredStatusBarStyle];}
- ios设置状态栏颜色
- iOS设置状态栏颜色
- ios状态栏颜色设置
- iOS状态栏颜色设置
- iOS设置状态栏颜色
- iOS设置状态栏颜色
- ios 设置状态栏颜色
- ios 设置状态栏背景颜色
- IOS下状态栏颜色设置
- ios 设置状态栏背景颜色
- ios 设置状态栏背景颜色
- iOS 状态栏的颜色设置
- iOS设置状态栏字体颜色
- ios-设置状态栏颜色(电池颜色)
- iOS设置状态栏和导航栏颜色
- iOS 状态栏隐藏与字体颜色设置
- iOS状态栏文字颜色设置白色
- ios 设置状态栏字体颜色为白色
- 前端也该了解的一些后端知识
- MyBatis Generator 详解
- Spring MVC+hibernate 开发系统(一)
- spring读取加载properties文件
- Linux git服务器http方式搭建
- iOS设置状态栏颜色
- 数据库的事务、事务并发以及隔离级别
- SQL state [99999]; error code [17001]; 问题处理
- Partition List
- 关于Java的File.separator
- Java日期与String转换等处理
- jsp--include指令和动作在动态引入中的区别
- sqlplus登录\连接命令、sqlplus命令的使用大全
- JavaScript ES6 核心功能一览