IOS改变状态栏文字颜色-UIStatusBarStyle

有三种可以修改状态栏颜色的方法,以下一一介绍。

方法一:
先修改info.plist属性,再在需要的地方调用代码。注意每次调用该代码都是全局改变的,所有界面的状态栏颜色统一改变。

1471507537985_.pic.png
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

优点:一次设置,全局改变。跳转到其他界面的时候也不用再次设置。
缺点:一个是一定要注意,这种方式是全局改变的;然后是设置了info.plist的属性后,方法二和三都将失效。

方法二:
使用UIViewController或者UINavigationController自带的方法——-(UIStatusBarStyle)preferredStatusBarStyle。

- (UIStatusBarStyle)preferredStatusBarStyle{
    return UIStatusBarStyleDefault;
}

使用用这个方法要注意两个点,第一个点就是info.plist中如果添加了View controller-based status bar appearance,那要将值设为YES,不然方法无效;第二点就是,uiviewcontroller虽然也有preferredStatusBarStyle方法,但是在uinavigationcontroller下是不起作用的。系统会优先调用uinavigationcontroller的preferredStatusBarStyle方法,除非navigationbar是隐藏状态的。

方法三:
改变navigationBar的barstyle。

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

需要注意的是,使用这种方法改变状态栏的颜色,会同时改变导航栏的颜色。这个问题可以通过设置导航栏背景图去避免;还有一个问题是,在uinavigationcontroller中重写了preferredStatusBarStyle方法的话,会使这个方法失效。

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    [self.navigationController.navigationBar setBackgroundImage:[self GetImageWithColor:[UIColor greenColor] andHeight:64] forBarMetrics:UIBarMetricsDefault];
}

以上就是改变状态栏文字颜色的一些总结,希望对大家有帮助。喜欢的点个赞~

你可能感兴趣的:(IOS改变状态栏文字颜色-UIStatusBarStyle)