隐藏导航条底部的横线

转载 2015年11月20日 23:47:50


默认情况下会有这条线
屏幕截图 2015年4月9日 at 下午9.34.31

第一种方法:

UINavigationBar *navigationBar = self.navigationController.navigationBar;
// white.png图片自己下载个纯白色的色块,或者自己ps做一个
[navigationBar setBackgroundImage:[UIImage imageNamed:@"white.png"]
                   forBarPosition:UIBarPositionAny
                       barMetrics:UIBarMetricsDefault];
[navigationBar setShadowImage:[UIImage new]];

运行后效果如下(此处原有的灰色背景色会被white.png代替):
wLU0J~lipTtq4M1i0000Ab
PS:这是唯一一个隐藏这条线的官方用法,但是有一个缺陷-删除了translucency(半透明)

第二种方法:
1)声明UIImageView变量,存储底部横线

@implementation MyViewController {
    UIImageView *navBarHairlineImageView;
}
 

2)在viewDidLoad中加入:

navBarHairlineImageView = [self findHairlineImageViewUnder:navigationBar];

 

3)实现找出底部横线的函数

- (UIImageView *)findHairlineImageViewUnder:(UIView *)view {
    if ([view isKindOfClass:UIImageView.class] && view.bounds.size.height <= 1.0) {
            return (UIImageView *)view;
    }
    for (UIView *subview in view.subviews) {
        UIImageView *imageView = [self findHairlineImageViewUnder:subview];
        if (imageView) {
            return imageView;
        }
    }
    return nil;
}

4)最后在viewWillAppear,viewWillDisappear中处理

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    navBarHairlineImageView.hidden = YES;
}
 
- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    navBarHairlineImageView.hidden = NO;
}
 

效果如下:
屏幕截图 2015年4月9日 at 下午9.44.48
PS:第二种方法可以保持bar的translucen

iOS之旅--隐藏(去除)导航栏底部横线

ios开发大部分情况下会使用到导航栏,由于我司的app导航栏需要与下面紧挨着的窗口颜色一致,导航栏底部的横线就会影响这个美观,LZ使用了以下方法。觉得不错,分享来给小伙伴们。1)声明UIImageVi...
  • sjl_leaf
  • sjl_leaf
  • 2015年08月25日 15:54
  • 12243

iOS隐藏导航条1px的底部横线

默认情况下会有这条线 第一种方法: UINavigationBar *navigationBar = self.navigationController.navigationBar; //...
  • superchaoxian
  • superchaoxian
  • 2015年05月15日 10:11
  • 1243

iOS隐藏导航条、tabbar 1px的底部横线

原文链接:http://blog.it985.com/9808.html 默认情况下会有这条线 第一种方法: 1 2 3 4 5 6 UINavigatio...
  • qimuya
  • qimuya
  • 2016年09月18日 10:07
  • 1391

IOS 去掉导航栏(UINavigationBar)下方的横线

下图是要最终实现的效果: 但是,开始时会出现下图中箭头指向的横线效果: 这是导航栏的问题,将下边的代码放在  viewWillAppear  方法中就可以实现效果: ...
  • cx_wzp
  • cx_wzp
  • 2015年07月31日 10:47
  • 27052

隐藏导航栏底部横线

有些时候需要隐藏导航下面的 1 像素的线可以实用以下的方法去实现 @interface MyViewController { UIImageView *navBarHairlineImageV...
  • baidu_15100009
  • baidu_15100009
  • 2016年06月29日 09:36
  • 136

NavigationBar 下面的横线是怎么来的? 如何去除?

NavigationBar 下面的横线是怎么来的? 如何去除?方法一(粗暴)这篇通过寻找出width小于1xp的view的方式,找出此横线,并在ViewWillDidLoad 等方法里隐藏之这里是具体...
  • iOSTianNan
  • iOSTianNan
  • 2016年04月14日 10:19
  • 5263

【Swift】导航栏隐藏底部黑线

/** 隐藏导航底部黑线 - parameter view: self.navigationController?.navigationBar - returns: 底部线的...
  • Emperor_huanzi
  • Emperor_huanzi
  • 2016年08月30日 09:38
  • 980

iOS开发--开发细节(去掉tableView下方的横线)

UITableViewCell 在使用UITableView 的时候在cell下方总是会出现一些无用的线条 看着很丑,两个方法可以去解决这个问题 1、设置隐藏线条 self.tableVi...
  • MX_xuanXiao
  • MX_xuanXiao
  • 2016年01月27日 09:53
  • 4305

iOS之隐藏导航条的下划线

消除iOS导航栏下划线
  • lolevergreen
  • lolevergreen
  • 2016年01月18日 20:47
  • 1472

iOS 去除NavigationController导航条最下面的一条横线

先看下效果图 这是有横线的 这是无横线的 代码如下://1、声明一个局部变量来存储底部横线 UIImageView *navBarHairlineImageView;//2、找出底部横线的函数...
  • ycf03211230
  • ycf03211230
  • 2017年01月10日 09:25
  • 233
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:隐藏导航条底部的横线
举报原因:
原因补充:

(最多只允许输入30个字)