一. 仅修改状态栏
1、 info.plist文件修改
View controller-based status bar appearance项
- 设为YES,则View controller对status bar的设置优先级高于application的设置。
-
设为NO则以application的设置为准, view controller的prefersStatusBarHidden方法无效,是根本不会被调用的。
image.png
2. 在改变状态栏的ViewController里面设置下面两方法
-(BOOL)prefersStatusBarHidden{
return YES;
}
//修改状态栏的样式
-(UIStatusBarStyle)preferredStatusBarStyle{
// 设置为白色
return UIStatusBarStyleLightContent;
}
效果图

二. 滑动修改状态栏
1) 首先去 Info.plist 里面,把 UIViewControllerBasedStatusBarAppearance 设置为 NO;

2)滑动触发状态栏变化
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
// 大于状态栏高度
if (scrollView.contentOffset.y > 44.0) {
// 状态栏白色
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
} else {
// 状态栏黑色
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
}
[self setNeedsStatusBarAppearanceUpdate];
}

网友评论