iOS 去掉导航栏下面黑线 —— HERO博客
2016-05-21 15:17
597 查看
去掉导航栏self.navigationController.navigationBar下默认黑线。
方法一:(会影响导航栏的translucent透明属性)
//视图将要显示时隐藏
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
}
//视图将要消失时取消隐藏
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:nil];
}方法二:
@property (nonatomic, weak) UIImageView *lineView;
//视图加载完成获取到导航栏最下面的黑线
- (void)viewDidLoad {
[super viewDidLoad];
//获取导航栏下面黑线
_lineView = [self getLineViewInNavigationBar:self.navigationController.navigationBar];
}
//视图将要显示时隐藏
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
_lineView.hidden = YES;
self.navigationController.navigationBar.translucent = YES;
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
}
//视图将要消失时取消隐藏
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
_lineView.hidden = NO;
self.navigationController.navigationBar.translucent = NO;
self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
}
//找到导航栏最下面黑线视图
- (UIImageView *)getLineViewInNavigationBar:(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 getLineViewInNavigationBar:subview];
if (imageView) {
return imageView;
}
}
return nil;
}
方法一:(会影响导航栏的translucent透明属性)
//视图将要显示时隐藏
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
}
//视图将要消失时取消隐藏
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:nil];
}方法二:
@property (nonatomic, weak) UIImageView *lineView;
//视图加载完成获取到导航栏最下面的黑线
- (void)viewDidLoad {
[super viewDidLoad];
//获取导航栏下面黑线
_lineView = [self getLineViewInNavigationBar:self.navigationController.navigationBar];
}
//视图将要显示时隐藏
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
_lineView.hidden = YES;
self.navigationController.navigationBar.translucent = YES;
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
}
//视图将要消失时取消隐藏
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
_lineView.hidden = NO;
self.navigationController.navigationBar.translucent = NO;
self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
}
//找到导航栏最下面黑线视图
- (UIImageView *)getLineViewInNavigationBar:(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 getLineViewInNavigationBar:subview];
if (imageView) {
return imageView;
}
}
return nil;
}
相关文章推荐
- iOS:shareSDK第三方登录
- iOS小技巧 - 设置TextField光标颜色
- iOS常见问题
- iOS - 通过runtime获取某个类中所有的变量和方法
- iOS基于MVC的项目重构总结
- iOS开发经验1.0
- iOS-block三种应用场景
- ios的hitTest方法以及不规则区域内触摸事件处理方法
- IOS 开发 事件截断处理
- IOS 开发 手势 及事件传递机理
- IOS 开发 手势使用
- IOS中 Block用法进阶二 局部变量和全局变量在Block中的使用
- IOS中 Block用法进阶一
- iOS static变量
- iOS开发:发布证书无法安装,不能修改"System Roots"钥匙串
- 四步搞定NiosII工程路径改变
- IOS之定位详解
- 谈谈iOS Animation
- iOS 获取当前展示的页面
- iOS 7 修改默认布局从status bar 底部开始