您的位置:首页 > 其它

隐藏导航栏下的1px底部横线

2016-05-17 00:00 411 查看
摘要: 原理是,直接用一个UIImageView(默认颜色为透明)代替了原来的横线

第一种:

先设置一个全局变量 UIImageView * imageView;

然后:

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

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

- (void)viewDidLoad
{
[super viewDidLoad];

_imageView = [self findHairlineImageViewUnder:self.navigationController.navigationBar];
}

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

第二种:

直接在AppDelegate.m中设置,可全局生效

[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: