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

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

默认UINavigationbar样式

准备用于替换的背景

替换后的效果

 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];

 

    }

  

最终效果:
   
 
原文地址:https://www.cnblogs.com/limicheng/p/3976838.html