1、ios9.0以前设置状态栏字体颜色
///白色
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];
///黑色
[[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleDefault];
会看到如下提示:
'setStatusBarStyle:' is deprecated: first deprecated in iOS 9.0 - Use -[UIViewController preferredStatusBarStyle]
注意:1、该方法在9.0后就废弃了,需要使用在preferredStatusBarStyle方法中实现
2、setStatusBarStyle设置状态栏颜色,我们需要在plist中添加
View controller-based status bar appearance —>NO
3、⚠️划重点:上面这个属性会影响 preferredStatusBarStyle的,
4、所以你在使用preferredStatusBarStyle来实现时,该值需要设置为YES,否则不生效
5、⚠️也就是说View controller-based status bar appearance 值为NO使用
setStatusBarStyle生效,为YES时preferredStatusBarStyle生效,一定要注意啦
2、iOS9.0以后使用如下方式:
- (UIStatusBarStyle)preferredStatusBarStyle {
//1:白色 0:黑色
if (self.vcFlag == 1) {
return UIStatusBarStyleLightContent;
}else {
if (@available(iOS 13.0, *)) {
return UIStatusBarStyleDarkContent;
} else {
return UIStatusBarStyleDefault;
}
}
}
注意:View controller-based status bar appearance 为YES
要想在页面滑动时,状态栏字体颜色会随着变黑或白色,flag我们已经添加,只要让其主动调用该方法
///会自动调用preferredStatusBarStyle方法,只要加上相关判断即可
[self setNeedsStatusBarAppearanceUpdate];