美文网首页
关于导航栏下方黑色分割线的隐藏与显示

关于导航栏下方黑色分割线的隐藏与显示

作者: 姜流儿96 | 来源:发表于2017-09-05 09:14 被阅读17次

现在越来越多UI都会有隐藏导航栏的需求,像鹅厂的这种:


IMG_2758.PNG

大部分的解决方案就是官方的那种:

[[UINavigationBar appearance] setShadowImage:[UIImage new]];

一劳永逸,但是有个问题,这样写了之后,想要恢复很麻烦,搜罗了一下解决方案,集百家之长,总结一下。


@property (weak, nonatomic) UIView * navLine;

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    if ([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]){
        NSArray *list=self.navigationController.navigationBar.subviews;
        for (id obj in list) {
            if ([obj isKindOfClass:[UIView class]]) {
                UIImageView *imageView=(UIImageView *)obj;
                NSArray *list2 = imageView.subviews;
                for (id obj2 in list2) {
                    if ([obj2 isKindOfClass:[UIImageView class]]) {
                        if (CGRectGetHeight([obj2 frame]) == 0.5) {
                            _navLine = (UIImageView *)obj2;
                        }
                    }
                }
            }
        }
    }
    [_navLine setHidden:YES];
    NSLog(@"_navLine---%@",_navLine);
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [_navLine setHidden:NO];
}

done!但是有个小小的问题,就是跳转的时候分割线的出现有点跳戏,这个还没有什么好办法解决,如果道友有好的解决方案,请告知一下,多谢!
收工,继续搬砖。

相关文章

网友评论

      本文标题:关于导航栏下方黑色分割线的隐藏与显示

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