iOS 修改状态栏颜色

  • 默认的黑色(UIStatusBarStyleDefault
  • 白色(UIStatusBarStyleLightContent

可以设置的地方有两个:plist设置里面 和 程序代码里

1.plist设置statusBar

在plist里增加一行 UIStatusBarStyle(或者是“Status bar style”也可以),这里可以设置两个值,就是上面提到那两个
UIStatusBarStyleDefaultUIStatusBarStyleLightContent

这样在app启动的launch页显示的时候,statusBar的样式就是上面plist设置的风格。

2.程序代码里设置statusBar

在application didfinshed方法里:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

或者

//相对于上面的接口,这个接口可以动画的改变statusBar的前景色  
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

如果上面设置状态栏颜色无效的话,试试下面方法

 

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

 

注意:添加下面方法会有警告:添加下面的#pragma

.m

#import "UINavigationController+StatusBarStyle.h"

@implementation UINavigationController (StatusBarStyle)

- (UIStatusBarStyle)preferredStatusBarStyle {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"
return UIStatusBarStyleLightContent;

#pragma clang diagnostic pop


}





@end
posted @ 2015-11-04 17:15  穿山甲随笔-iOS开发  阅读(565)  评论(0编辑  收藏  举报