关于NavgaitionBar 黑线

1、黑线的由来

Apple 为了方便开发者给用户设置导航栏的背景,默认给了导航栏一个图层,也就是ImageView,然后给这个ImageView 设置了shadowImage,这就导致了我们看到的导航栏有黑线。

2、如何去除 

  方法1:

  既然是 shadowImage 那就可以先设置背景图片,然后设置shadowImage 就可以了

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

方法2:
将UINavigationBar的clipsToBounds属性设成YES可以了

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





原文地址:https://www.cnblogs.com/allenChan/p/4951876.html