方案一:
写在AppDelegate里面
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
方案二:
将UINavigationBar的clipsToBounds属性设成YES
原理:

翻译:对于自定义导航栏背景图片,自定义背景图片必须使用"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]];
这段代码.(原因是,你先把苹果的默认导航栏背景图片去掉).
本文介绍两种去除iOS应用中UINavigationBar底部黑线及阴影的方法:一是通过修改AppDelegate中的代码;二是调整UINavigationBar的clipsToBounds属性。文章还提供了一个技巧来实现全透明的导航栏。
4751

被折叠的 条评论
为什么被折叠?



