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

默认情况下会有这条线

第一种方法:

UINavigationBar *navigationBar = self.navigationController.navigationBar;

// white.png图片自己下载个纯白色的色块,或者自己ps做一个

[navigationBar setBackgroundImage:[UIImage imageNamed:@"white.png"]

                   forBarPosition:UIBarPositionAny

                       barMetrics:UIBarMetricsDefault];

[navigationBar setShadowImage:[UIImage new]];

运行后效果如下(此处原有的灰色背景色会被white.png代替):

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;

}

效果如下:

PS:第二种方法可以保持bar的translucen

时间: 2024-12-15 01:51:58

iOS隐藏导航条1px的底部横线的相关文章

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

默认情况下会有这条线 第一种方法: 1 2 3 4 5 6 UINavigationBar *navigationBar = self.navigationController.navigationBar; // white.png图片自己下载个纯白色的色块,或者自己ps做一个 [navigationBar setBackgroundImage:[UIImage imageNamed:@"white.png"]                    forBarPosition:UIB

导航右侧添加按钮、隐藏导航条和状态栏

1.添加导航右侧按钮 UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"无所谓"style:UIBarButtonItemStyleDone target:self action:@selector(clickRightButton)]; [self.navigationItem setRightBarButtonItem:rightButton]; 2.隐藏导航条 navigationBar

navigationcontroller pop回到隐藏导航条页面出现黑块问题

如果隐藏导航条的页面使用无动画模式隐藏导航条 [self.navigationController setNavigationBarHidden:YES animated:NO];在导航pop回来时就会出现黑块问题. 将隐藏导航条设置为动画模式:[self.navigationController setNavigationBarHidden:YES animated:YES]; 就能解决这个问题.

iOS隐藏导航栏底部的线条&amp; UINavigationBar小技巧

隐藏导航栏底部的线条 转载:https://www.jianshu.com/p/aa547432eae0 方法1 (单页面设置) [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar setShadowImage:[UIImage new]]; 如果不

iOS:导航条滚动透明度随着tableView的滚动而变化

来源:HelloYeah 链接:http://www.jianshu.com/p/b8b70afeda81 下面这个界面有没有觉得很眼熟.打开你手里的App仔细观察,你会发现很多都有实现这个功能.比如美团外卖的首页模块,新浪微博的个人详情页面.要怎么样才能快速的实现这个功能呢!那下面由笔者来告诉你如何三行代码,集成这个功能... 原理介绍: 要想把一个view设计成透明的我们一下子就会想到两种方案,设置view的alpha值为0,或者设置view的backgroundColor为clearCol

iOS隐藏导航栏底部灰线

首先创建 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #de38a5 } span.s1 { } span.s2 { color: #ffffff } @interface TestVC() p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #ffffff } p.p2 { margin: 0.0px 0.0px 0.0px

隐藏导航条底部的黑线(shadowImage)

stretchableImageWithLeftCapWidth:5 topCapHeight:6] forState:UIControlStateNormal]; [self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault]; self.navigationController.navigationBar.shadowIm

iOS去除导航栏和tabbar的横线

导航[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar setShadowImage:[UIImage new]]; 导航透明设置  [self.navigationController.navigationBar setTranslucent:NO

[工作积累] Android: Hide Navigation bar 隐藏导航条

https://developer.android.com/training/system-ui/navigation.html 1 View decorView = getWindow().getDecorView(); 2 // Hide both the navigation bar and the status bar. 3 // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as 4