使NavigationBar底部的黑线消失

文章目录
  1. 解决方案
  2. 关于颜色

UINavigationBar底部有一条黑色线,这条线的初衷是分隔下方的内容,但我们如果要做纯色背景和navigationBar,并且希望整个ViewController融为一体,这条黑线就很讨厌了。恰好这次做应用,遇到了这个需求,多方查询资料无解,最后在技术群群友的帮助下搞定了,记录下来。

解决方案

我们先假设你已经把整个ViewController做好布局了,并且已经把navigationBar设置好了。

由下面一行代码,我们可以设置navigationBar背景透明。

1
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];

之后,分别设置barStyle、translucent透明、shadowImage阴影图三个属性设置好。

1
2
3
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.translucent = NO;
[self.navigationController.navigationBar setShadowImage:[UIImage new]];

关于shadowImage要注意,这个属性和前面的navigationBarbackgroundImage都被我们设置成了一个没有图片内容的UIImage,正是由此,我们才能获得不带线的

关于颜色

有群友表示,不能使用setBarTintColor方法,否则无论如何也去不了线。不过经我实测,去不去线和用不用这个方法没!有!关!系!所以,还是可以正常的通过setBarTintColor方法来设置navigationBar的performance。