iOS分开设置状态栏和导航栏

本文首发地址

本文介绍iOS7以后的状态栏设置宝典

大概自iOS7以后状态栏和导航栏好像穿同一条裤子了,给导航栏设置颜色,状态啦显示的颜色一样

在操作之前 一定要先修改配置文件info.plist

AC8A1F95-7F48-4C6F-9676-2B752723CB30.png

View controller-based status bar appearance 设置为NO

1:设置导航栏和状态栏同色

看图1

iOS分开设置状态栏和导航栏_第1张图片
1.png

代码如下

// 设置颜色
#define TCOLOR(r, g, b, a) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a]

// 设置导航栏背景色

   [[UINavigationBar appearance] setBarTintColor:TCOLOR(12, 73, 123, 1)];

可见设置了导航栏的颜色,那状态栏自己就跟着导航栏的颜色进行改变。

2:分别设置导航栏和状态栏的背景

从iOS7以后他们俩何为一头,所以就添加一个替代的view来控制状态栏

如图2

iOS分开设置状态栏和导航栏_第2张图片
2.png

代码如下

/**
     状态栏颜色
     */
    UIView *statusBarView = [[UIView alloc] initWithFrame:CGRectMake(0, -20, 320, 20)];
    statusBarView.backgroundColor = TCOLOR(6, 6, 6, 1);
    /**
     *  更改状态栏字体为白色   默认为黑色
     */
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

/// 想navigation的navigationBar上添加状态栏
[nav.navigationBar addSubview:statusBarView];

2:设置导航栏标题的颜色和字体
如图1效果

iOS分开设置状态栏和导航栏_第3张图片
1.png
/**
     *  设置导航栏字体颜色
     */
    NSDictionary * attriBute = @{NSForegroundColorAttributeName:[UIColor whiteColor],NSFontAttributeName:[UIFont systemFontOfSize:30]};
    [nav.navigationBar setTitleTextAttributes:attriBute];

如有问题可添加我的QQ:1290925041
还可添加QQ群:234812704(洲洲哥学院)
欢迎各位一块学习,提高逼格!
也可以添加洲洲哥的微信公众号

你可能感兴趣的:(iOS分开设置状态栏和导航栏)