美文网首页iOS技能热门ios开发
去除导航条下方的横线

去除导航条下方的横线

作者: Tang_shuya | 来源:发表于2016-04-28 18:55 被阅读611次
iOS开发大部分情况下会使用到导航栏,由于我司的app导航栏需要与下面紧挨着的窗口颜色一致,导航栏底部的横线就会影响这个美观。
 去除方法之一:(推荐)
 UIImageView *backgroundView = [self.navigationController.navigationBar valueForKey:@"_backgroundView"];
 for(UIView *view in backgroundView.subviews) {
 if(view.bounds.size.height <= 1.0f) {
  [view removeFromSuperview];
 }
 }

去除方法之二(不推荐,太复杂)。
1)声明UIImageView变量,存储底部横线  
@interface MyViewController {

UIImageView *navBarHairlineImageView;

 }
  2)在viewDidLoad中加入:
  navBarHairlineImageView = [self findHairlineImageViewUnder:self.navigationController.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;
 }

相关文章

网友评论

  • David_Cap:你试试这俩句你会发现奇迹哦 :wink:
    [[UINavigationBar appearance] setBackgroundImage:[UIImage new] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
    [[UINavigationBar appearance] setShadowImage:[UIImage new]];
    Tang_shuya:@David_Cap :+1:
    David_Cap:@iOS女神 是不是 easy许多。 :wink:
    Tang_shuya:@David_Cap :smile: :+1:

本文标题:去除导航条下方的横线

本文链接:https://www.haomeiwen.com/subject/ujehrttx.html