zoukankan      html  css  js  c++  java
  • iOS之旅--隐藏(去除)导航栏底部横线

    iOS之旅--隐藏(去除)导航栏底部横线

    iOS开发大部分情况下会使用到导航栏,由于我司的app导航栏需要与下面紧挨着的窗口颜色一致,导航栏底部的横线就会影响这个美观,LZ使用了以下方法。觉得不错,分享来给小伙伴们。


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


    上面使用了一种个人比较喜欢的方法,

    下面来一个最简单的:


    的。

    UINavigationBar *navigationBar = self.navigationController.navigationBar;
    // bg.png为自己ps出来的想要的背景颜色。
    [navigationBar setBackgroundImage:[UIImage imageNamed:@"bg.png"]
                       forBarPosition:UIBarPositionAny
                           barMetrics:UIBarMetricsDefault];
    [navigationBar setShadowImage:[UIImage new]];

    这是唯一一个隐藏这条线的官方用法,但是有一个缺陷-删除了translucency(半透明)


    总体来说,第二种办法还是很好地,建议大家使用第二种办法。

  • 相关阅读:
    HDU 1247
    [转载]亲密接触VC6.0编译器
    [转载]你该学什么程序语言
    ACE学习2009116
    新东方英语学习二
    电脑族吃什么比较好
    爱默生生活的准则
    成大事必备9种能力9种手段9种心态
    [转载]句柄和指针
    关于WM_CREATE消息
  • 原文地址:https://www.cnblogs.com/YangFuShun/p/5138544.html
Copyright © 2011-2022 走看看