做项目过程中遇到要去掉导航栏下面的一条黑线,从网上找到的一个方法

默认UINavigationbar样式

iOS7中如何去除UINavigationbar下边的那条黑线-LMLPHP

准备用于替换的背景

iOS7中如何去除UINavigationbar下边的那条黑线-LMLPHP

替换后的效果

iOS7中如何去除UINavigationbar下边的那条黑线-LMLPHP

if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"top_bg"] forBarMetrics:UIBarMetricsDefault];

}

在ios7中,执行以上代码替换navigationBar的背景图片后,出现一条很明显的黑线,请问各位大哥,如何去除黑线?

-----------------------------------------------------------------------------------

等了一个多小时没人回答,好难过!

还好我自己解决了!

方法如下:

if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){

NSArray *list=self.navigationController.navigationBar.subviews;

for (id obj in list) {

if ([obj isKindOfClass:[UIImageView class]]) {

UIImageView *imageView=(UIImageView *)obj;

imageView.hidden=YES;

}

}

UIImageView *imageView=[[UIImageView alloc] initWithFrame:CGRectMake(0, -20, 420, 64)];

imageView.image=[UIImage imageNamed:@"top_bg"];

[self.navigationController.navigationBar addSubview:imageView];

[self.navigationController.navigationBar sendSubviewToBack:imageView];

}

最终效果:
   iOS7中如何去除UINavigationbar下边的那条黑线-LMLPHP
 
04-28 15:01