iOS 隐藏导航栏UINavigationBar黑线

要解决问题,首先要知道问题发生在哪里,这个问题是当初刚工作在项目过阶段评审的时候被设计提出来的,他说你看这导航栏下面怎么会有一像素的黑线,当时真的是愣住了,甚至认为这是一个苹果的bug。现在想想真的好幼稚。

首先我们看一下苹果官方给出的解释:

1240

2E04731A-B0C8-4341-9B1D-D8FBB09B6484.png


现在让我这个英语半吊子来翻译一下,他的意思就是说如果你不调用这个方法设置一张背景图片的话,那我就给你默认一张,然后同时还有一张阴影图片被默认设置上去,好吧,这就是导航栏上1px黑线的由来,没错,就是这个苹果赠送的shadowImage。

1240

B6D352EE-F0C8-402C-B797-23405F232869.png

相信看到这个解释即使不继续说下去有些同学也知道解决办法了吧,没错嘛,你就用上面说的那个方法,给设置一张背景图片,然后在设置一张shadowImage就可以了,就像这样:

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

为了一劳永逸,我把他写在AppDelegate里面了。

下一个解决办法,将UINavigationBar的clipsToBounds属性设成YES就好啦,从此黑线去无踪。

最后一个办法,就是循环遍历一下UINavigationBar的所有子视图,发现有UIImageView类型的视图就remove掉,或者设成隐藏状态(hidden)。虽然也能达到想要的效果,但是感觉这个方法太暴力了,不是很推荐。

转载于:https://my.oschina.net/daniels/blog/983042

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值