美文网首页
statusBar 背景以及字体颜色设置

statusBar 背景以及字体颜色设置

作者: gitKong | 来源:发表于2016-09-22 10:36 被阅读544次

系统自带效果

  • 1.UIStatusBarStyleDefault 效果是:黑色字体、透明背景

  • 2.UIStatusBarStyleLightContent 效果是:白色字体、透明背景

需求:改背景颜色

#注意:此方法调用后会全局改变statusBar的背景颜色,如果只需要当前控制器显示,那么应该在viewWillDisappear 中设置为clearColor

- (void)setStatusBarBackgroundColor:(UIColor *)color{
    UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
    
    if ([statusBar respondsToSelector:@selector(setBackgroundColor:)])
    {
        statusBar.backgroundColor = color;
    }
}

任意组合(白色或黑色字体 配合任意颜色的背景)

在导航控制器中重写方法:
- (UIViewController *)childViewControllerForStatusBarStyle{
    return self.topViewController;
}

控制器中设置:UIStatusBarStyleDefault || UIStatusBarStyleLightContent 以达到修改文字颜色的效果
- (UIStatusBarStyle)preferredStatusBarStyle{
    return UIStatusBarStyleLightContent;
}

注意(横屏情况下,iOS8之后系统会默认隐藏状态栏)重写系统方法去显示

//设置是否隐藏,iOS8.0之后,系统默认横屏的时候隐藏状态栏
- (BOOL)prefersStatusBarHidden {
    return NO;
}

如果项目中使用频繁,可以封装成一个父类,工具类可能就麻烦点,
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent; 这个方法设置没有任何效果,时间紧迫,先这样处理了,迟点项目没那么赶的时候再完善,写个工具类

相关文章

网友评论

      本文标题:statusBar 背景以及字体颜色设置

      本文链接:https://www.haomeiwen.com/subject/oakzettx.html