今天记录两点,如图片中的两条红线:
1..在特定的页面需要将状态栏变为白色.
2..为了页面美观度,特定的页面 需要将NavigationVC设置为透明,但是设置将一个透明图设置为Nav的背景图以后会有一条阴影的线!如下面这个图

1.设置应用启动不显示状态栏,这一栏相当于是Info的可视化设置,勾选这一栏info.plist会自动添加Status bar is initially hidden应用启动显示启动页时隐藏状态栏

首先在Info.pilst 设置基于视图控制器的状态栏外观 添加View controller-based status bar appearance为NO我们就能控制状态的外观权限.
然后在代码中添加以下代码,就可以将状态栏设置为白色,不过通过[UIApplication sharedApplication]设置的是应用全局性的,所以要在当前Vc以外将状态栏的样式还原为Default
同样在viewWilldidappser中设置会原默认状态:
1..在特定的页面需要将状态栏变为白色.
2..为了页面美观度,特定的页面 需要将NavigationVC设置为透明,但是设置将一个透明图设置为Nav的背景图以后会有一条阴影的线!如下面这个图
状态栏样式设置:
1.设置应用启动不显示状态栏,这一栏相当于是Info的可视化设置,勾选这一栏info.plist会自动添加Status bar is initially hidden应用启动显示启动页时隐藏状态栏
2..将 状态栏设置为白.状态的颜色只有两种颜色Default(黑色),或者light(白色)
首先在Info.pilst 设置基于视图控制器的状态栏外观 添加View controller-based status bar appearance为NO我们就能控制状态的外观权限.
然后在代码中添加以下代码,就可以将状态栏设置为白色,不过通过[UIApplication sharedApplication]设置的是应用全局性的,所以要在当前Vc以外将状态栏的样式还原为Default
<span style="font-size:18px;"> [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:YES];
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;</span>在viewWilldisappser中设置:<span style="font-size:18px;"> [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;</span>这样,设置在你想要的Vc中状态栏就是白色的,其他Vc就是默认的黑色导航栏(NavigationVc)透明透明化设置(这个效果也是自iOS7开始才可以设置的):
设置导航栏的透明,首先想到一点就是将导航栏的北京图片设置为透明图片,这样想法是正确的但是设置完以后,发现怎么调都会有一条阴影先存在.像上面第二张图一样那怎么做到想第一张图一样的效果,代码不多: self.navigationController.navigationBar.translucent = YES;//首先要将当前的navigationBar的半透明设置为Yes;为NO的导航栏不透明
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent; //在iOS6及之前,translucent的默认值为NO。<span style="font-family:'Heiti SC Light';color:#000000;">
之后,如果barStyle设为</span>UIBarStyleBlackTranslucent<span style="font-family:'Heiti SC Light';">则其值为</span>YES<span style="font-family:'Heiti SC Light';">。</span>所以这两句保留其中一句就可以了!
//这里设置navigationBar的背景图片为一张 1像素 的透明背景图片
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navigation_bar"] forBarMetrics:UIBarMetricsDefault];
//这里是主要点shadowImage,阴影图片! 我们看到的那条不管怎设置都还在的线就是这个阴影图像,如不自定义,默认为显示
if ([self.navigationController.navigationBar respondsToSelector:@selector(shadowImage)])
{
//_shadowImage是一个当前Vc的全局Image成员变量,用来存储变之前的shadowImage,因为要在出当前Vc后其他还原默认的阴影图片
_shadowImage = self.navigationController.navigationBar.shadowImage;
[self.navigationController.navigationBar setShadowImage:[[UIImage alloc]init]];
}
同样在viewWilldidappser中设置会原默认状态:
[self.navigationController.navigationBar setShadowImage:_shadowImage];

本文介绍了如何在iOS应用中设置状态栏样式,以及实现导航栏的透明效果,这些功能自iOS7开始提供。

9157

被折叠的 条评论
为什么被折叠?



