ios基础:iOS改变状态栏字体颜色

来源:互联网 发布:qq密码查询数据库 编辑:程序博客网 时间:2024/06/06 03:19

1.iOS7之前采用的方法

UIApplication对象设置(需要更改plist文件中View controller-based status bar appearance选项设置为NO,默认为YES)

第一步就是取plist中把这个选项改成NO,我知道这一大串东西根本记不住!找到Supporting Files->info.plist,右键后选Add Row 就会出现第二个页面,它会提供很多属性,一直往下,最后一个就是View controller-based status bar appearance,这样就不用记这个东西了。

当然改完这个后,你会发现并没有什么卵用。还需设置UIApplication对象,具体代码如下:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];//设置状态栏字体为白色[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];//设置状态栏字体为黑色


2.iOS7以后采用的方法

在试图控制器中重写- (UIStatusBarStyle)preferredStatusBarStyle方法。该方法返回是一个UIStatusBarStyle,只要重写该方法,当前视图控制器的状态栏颜色就会改变,例如模态视图。

这个方法看似简单,但是要想在导航控制器中使用,还是要注意很多细节。因为很多APP的中都是有导航栏的,这也是导航栏跟状态栏一起讲解的原因。

先简单介绍一下UINavigationController,刚接触这个的时候,都是大概能懂,大概能用,真的要融会贯通还是有很大的难度。


- (UIStatusBarStyle)preferredStatusBarStyle {

return UIStatusBarStyleLightContent;

}


3.设置导航栏的背景颜色来改变

前两种方法是可以不通过导航栏来设置状态栏字体颜色。这里介绍的这个方法也是简单粗暴,同样是在同一个UINavigationController中,

- (void)viewWillAppear:(BOOL)animated

{

[super viewWillAppear:animated];

self.navigationController.navigationBar.hidden = YES;

self.navigationController.navigationBar.barStyle = UIStatusBarStyleLightContent;

}

原创粉丝点击