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

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


    1)声明UIImageView变量,存储底部横线

    @interface MyViewController {
        UIImageView *navBarHairlineImageView;
    }
    • 1
    • 2
    • 3

    2)在viewDidLoad中加入:

    navBarHairlineImageView = [self findHairlineImageViewUnder:self.navigationController.navigationBar];
    • 1

    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;
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    4)最后在viewWillAppear,viewWillDisappear中处理

    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        navBarHairlineImageView.hidden = YES;
    }
    
    - (void)viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:animated];
        navBarHairlineImageView.hidden = NO;
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9


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

    下面来一个最简单的:


    的。

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

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


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

  • 相关阅读:
    ABP框架系列之三:(Entity Framework Integration-实体框架集成)
    ABP框架系列之二:(Entity Framework Core-实体核心框架)
    ABP框架系列之一:(Entity-实体)
    MUI框架开发HTML5手机APP(一)--搭建第一个手机APP(转)
    树莓派安装mono
    【C#】VS2015开发环境的安装和配置(转)
    ABP框架
    WebApi系列~HttpClient的性能隐患(转)
    django中navie时间和aware时间详解
    js扩展运算符(spread)是三个点(...)
  • 原文地址:https://www.cnblogs.com/jgCho/p/5139605.html
Copyright © 2011-2022 走看看