NavigationBar底部分割线隐藏

时间:2023-01-28 09:33:05

有时我们需要实现如下场景,
(1)在同一个界面中 显示与隐藏NavigationBar底部分割线
(2)当离开这个ViewController的时候,仍然需要显示底部分割线。
效果图如下所示:

图1

图2

(1)定义变量
UIImageView*navBarHairlineImageView;

(2)创建findHairlineImageViewUnder方法,并在viewDidLoad中调用
- (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) {
returnimageView;
}
}
return nil;
}

viewDidLoad中调用
navBarHairlineImageView= [self findHairlineImageViewUnder:self.navigationController.navigationBar];

(3)在viewWillAppear方法中隐藏该分割线
navBarHairlineImageView.hidden=YES;

(4)在viewWillDisappear方法中显示该分割线
navBarHairlineImageView.hidden=NO;

文章链接:http://www.jianshu.com/p/5fffa30d7210