1.方法一:
UIImage *img = [UIImage imageNamed:@""];
[self.navigationController.navigationBar setBackgroundImage:img forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [[UIImage alloc] init];
注意:
1)如果img = [UIImage alloc]init] ; 導(dǎo)航條屬性:translucency(半透明)。
2)建議使用不透明的背景圖。一般高度:設(shè)置成64 = 導(dǎo)航欄的高度 + 狀態(tài)欄的高度。
方法二:
1)、聲明即將存儲(chǔ)導(dǎo)航條下面那條橫線的圖片視圖容器:
@interface XXXController () {
UIImageView *navBarHairlineImageView;
}
2)、找到(viewDidLoad)那條黑色的橫線:
UINavigationBar *navigationBar = self.navigationController.navigationBar;
navBarHairlineImageView = [self slnFindHairlineImageViewUnder:navigationBar];
解釋:slnFindHairlineImageViewUnder 這是找到橫線的方法。
-
(UIImageView *)slnFindHairlineImageViewUnder:(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 slnFindHairlineImageViewUnder:subview]; if (imageView) { return imageView; } } return nil;
}
3.需要在這兩個(gè)viewWillAppear和viewWillDisappear方法里,進(jìn)行處理一下:
-
(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated]; navBarHairlineImageView.hidden = YES;
}
-
(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated]; navBarHairlineImageView.hidden = NO;
}