ios显示或隐藏导航栏的底线

根据产品需求要求把这个界面导航栏的底线去掉,下个控制器还需要有底线.

使用下面的代码实现

//在页面出现的时候就将黑线隐藏起来

-(void)viewWillAppear:(BOOL)animated

{

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];

[self.navigationController.navigationBar setShadowImage:[UIImage new]];

_navBarHairlineImageView.hidden = YES;

}

//在页面消失的时候就让navigationbar还原样式

-(void)viewWillDisappear:(BOOL)animated{

[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

[self.navigationController.navigationBar setShadowImage:nil];

//再定义一个imageview来等同于这个黑线

//UIImageView *navBarHairlineImageView;

_navBarHairlineImageView = [self findHairlineImageViewUnder:self.navigationController.navigationBar];

}

//这个方法唯一的不好就是会影响导航栏的translucent(透明)属性

//方法2:找出黑线,再做处理:

//通过一个方法来找到这个黑线(findHairlineImageViewUnder):

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

}

////同样的在界面出现时候开启隐藏

//-(void)viewWillAppear:(BOOL)animated

//{

//    _navBarHairlineImageView.hidden = YES;

//}

////在页面消失的时候就让出现

-(void)viewDidAppear:(BOOL)animated

{

_navBarHairlineImageView.hidden = NO;

}

时间: 2024-10-11 04:01:44

ios显示或隐藏导航栏的底线的相关文章

iOS 优雅地隐藏导航栏NavigationBar (Objc)

@interface FSViewController () <UINavigationControllerDelegate> @end @implementation FSViewController #pragma mark - lifeCycle - (void)viewDidLoad { [super viewDidLoad]; // 设置导航控制器的代理为self self.navigationController.delegate = self; } // 将要显示控制器 #pra

UIScrollView UITableView 上拉隐藏导航栏和tabbar 下拉显示导航栏和tabbar

//UIScrollView  UITableView 上拉隐藏导航栏和tabbar 下拉显示导航栏和tabbar-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ CGPoint translation = [scrollView.panGestureRecognizer translationInView:scrollView.superview];    if

iOS 滑动隐藏导航栏-三种方式

/** 1隐藏导航栏-简单- */    self.navigationController.hidesBarsOnSwipe = YES; /** 2隐藏导航栏-不随tableView滑动消失效果 *///- (void)scrollViewDidScroll:(UIScrollView *)scrollView {//    //scrollView已经有拖拽手势,直接拿到scrollView的拖拽手势//    UIPanGestureRecognizer *pan = scrollVie

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 7 教程:定制iOS 7中的导航栏和状态栏

目录(?)[-] iOS 7中默认的导航栏 设置导航栏的背景颜色 在导航栏中使用背景图片 定制返回按钮的颜 修改导航栏标题的字体 修改导航栏标题为图片 添加多个按钮 修改状态栏的风格 隐藏状态栏 总结 注:本文译自Customizing Navigation Bar and Status Bar in iOS 7 近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这

iOS 7中的导航栏和状态栏

iOS 7中默认的导航栏 在开始定制之前,我们先来看看iOS 7中默认导航栏的外观.通过Xcode用Single View Controller模板创建一个工程.然后将view controller嵌入到一个navigation controller中.如果你不想从头开始,那么也可以在这里下载到这个 示例工程.Xcode 5包含有iOS 6和iOS 7模拟器,我们可以在这两个不同的模拟器版本中运行示例程序,进行对比,如下图所示: 如上图所示,在iOS 7中的导航栏默认情况下跟状态栏是交织在一起的

定制iOS 7中的导航栏和状态栏

本文转载至 http://www.cocoachina.com/industry/20131104/7287.html 跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这也 “” 阅读器 近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这

AMScrollingNavbar框架(自动隐藏导航栏)使用简介

AMScrollingNavbar框架是一个可以上拉隐藏导航栏和下拉显示导航栏的框架,这个开源框架的调用也很简单,本章节就给大家介绍一下这个框架的用法. 一.下载及导入框架 AMScrollingNavbar 在下载框架的时候大家需要注意一下,选择V1.x,否则下载的是swift的版本,如下图: 下载好以后,大家只需要将下图中的两个文件引入所需工程即可: 二.引入头文件并完成相关属性设置 首先需要在控制器类中引入要用到的头文件 #import "UIViewController+Scrollin

隐藏导航栏底部的灰色线条

工作中遇到的问题,参考网上资料(http://blog.it985.com/9808.html).方法主要有三种,第一种方法的思路是更改导航栏的背景,第二种方法的思路是遍历导航栏的子控件,找到后隐藏底部灰色线条,第三种就是通过xib来实现,控制器的导航栏用一般的控件(UIView)来创建,而在viewDidload:方法中隐藏导航栏. 方法一和方法三的缺陷是导航栏的半透明效果会消失. 默认情况下,导航栏的下面会有一条灰色的线条. 三种方法的具体实现: 方法一:设置导航栏的北京图片和阴影图片 运行