有时我们需要实现如下场景, (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;
