This line is available by default
The first method:
Uinavigationbar *navigationbar = Self.navigationController.navigationBar; //White.png picture yourself download a pure white color block, or your own PS to do a [Navigationbar setbackgroundimage:[uiimage imagenamed:@ "White.png"] Forbarposition:uibarpositionany New]];
The post-run effect is as follows (the original gray background color will be replaced by White.png):
PS: This is the only official usage that hides this line, but there is a flaw-removed translucency (translucent)
The second method: 1) Declares the Uiimageview variable, storing the bottom horizontal line
@implementation Myviewcontroller { *navbarhairlineimageview;}
2) Add in Viewdidload:
[Self findhairlineimageviewunder:navigationbar];
3) Realize the function of finding the bottom horizontal line
-(Uiimageview*)Findhairlineimageviewunder: (UIView*)View { if([view IsKindOfClass:UIImageView.class] && view.bounds.size.height <=1.0) { return(Uiimageview*)View } for(UIView*subviewIn View.subviews) { Uiimageview*imageview= [self Findhairlineimageviewunder:subview]; if(ImageView) { returnImageView; } } returnNil;}
4) finally processed in the Viewwillappear,viewwilldisappear
-(void) Viewwillappear: (BOOL) animated { [Super viewwillappear:animated]; Navbarhairlineimageview.hidden = YES;} -(void) Viewwilldisappear: (BOOL) animated { [Super Viewwilldisappear: Animated]; navbarhairlineimageview.hidden = NO;}
The effect is as follows:
PS: The second method can keep bar translucent
iOS Hidden nav bar 1px bottom horizontal line