iOS的UINavigationBar去掉黑线的几种方法分析

方案一:

写在AppDelegate里面

[[UINavigationBar appearance]  setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];

[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];


方案二:

将UINavigationBar的clipsToBounds属性设成YES


原理:

Apple

翻译:对于自定义导航栏背景图片,自定义背景图片必须使用"setBackgroundImage: forBarMetrics: "这个方法.如果你不自定义背景图片的话,系统会替你设置一张背景图片.

意思就是,我们不设置背景图片,看到的其实是苹果已经给你设置了一张背景图片,有阴影,有黑线.(系统默认的,打开iPhone设置界面就是这样的).so,如果你想去掉黑线的话,就去掉苹果默认设置的图片吧!

写在AppDelegate里面

[[UINavigationBar appearance]  setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];

[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];

自己感受这段代码吧!




扩展:

相信大家有导航栏全透明的需求吧.

调用这段代码吧,图片可以任意设置,只要forBarMetrics那里是UIBarMetricsCompact就可以了.

[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav.jpg"] forBarMetrics:UIBarMetricsCompact];

注意:调用这段代码想实现导航栏全透明必须先有

[[UINavigationBar appearance]  setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];

[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];

这段代码.(原因是,你先把苹果的默认导航栏背景图片去掉).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值