UI_iOS应用状态栏样式设置_及导航栏(NavigationBar)透明

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

今天记录两点,如图片中的两条红线:
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];








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值