美文网首页
iOS设置导航栏透明

iOS设置导航栏透明

作者: 回眸月 | 来源:发表于2016-10-13 15:27 被阅读130次

    方法一

    - (void)viewWillAppear:(BOOL)animated{

             [super viewWillAppear:animated];

             [[self.navigationController.navigationBar subviews] objectAtIndex:0].alpha = 0;

    }

    仅设置当前页透明

    - (void)viewWillDisappear:(BOOL)animated{

           [super viewWillDisappear:animated];

           [[self.navigationController.navigationBar subviews] objectAtIndex:0].alpha = 1;

    }

    该方法在iOS 11时会闪退,在iOS 11上[self.navigationController.navigationBar subviews]为空


    方法二

    - (void)viewWillAppear:(BOOL)animated{

           [super viewWillAppear:animated];

           [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];

           //去掉导航栏底部的黑线

            self.navigationController.navigationBar.shadowImage = [UIImage new];

    }

    仅设置当前页透明

    - (void)viewWillDisappear:(BOOL)animated{

          [super viewWillDisappear:animated];

          [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

          [self.navigationController.navigationBar setShadowImage:nil];

    }

    使用方法二时,如果返回上一页的方法是带动画的,在进入到上一页界面时,导航的颜色是渐变


    个人感觉:方法一比方法二更好用,效果也比较好

    相关文章

      网友评论

          本文标题:iOS设置导航栏透明

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