statusbar 状态栏 跟随navigationbar的颜色而改变
ios7以下的版本设置导航栏背景颜色可以使用
[[UINavigationBar appearance] setTintColor:[UIColor orangeColor]];
ios7以后:
[[UINavigationBar appearance] setBarTintColor:[UIColor orangeColor]];
默认带有一定透明效果,可以使用以下方法去除系统效果
[navigationController.navigationBar setTranslucent:NO];
公司项目需要将状态栏的文字颜色设置为白色,以下方法即可
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
改变后需要及时刷新的调用
[viewController setNeedsStatusBarAppearanceUpdate];
如果没有效果,需要在plist文件里设置
View controller-based status bar appearance = NO
info.plist中 View controller-based status bar appearance这个属性 View controller-based status bar appearance =NO 这个设置为:View Controller 不对status Bar 显示进行操作
其他别的相关操作:
1.将 View controller-based status bar appearance 删除(默认为 YES),或设置为YES
2.设置rootViewcontroller,如果为viewController,那么重写下面的方法
-(UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
如果rootviewcontroller为navgationController,那么可以在所管理的viewcontroller里写下面的代码
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
或者为navgationcontroller写一个分类
.h
@interface UINavigationController (StatusBarStyle)
@end
.m
#import "UINavigationController+StatusBarStyle.h"
@implementation UINavigationController (StatusBarStyle)
- (UIStatusBarStyle)preferredStatusBarStyle
{
//also you may add any fancy condition-based code here
return UIStatusBarStyleLightContent;
}
@end