iOS9修改状态栏颜色

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

你可能感兴趣的:(iOS9修改状态栏颜色)