1.方法一:
UIImage *img = [UIImage imageNamed:@""];
[self.navigationController.navigationBar setBackgroundImage:img forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [[UIImage alloc] init];
注意:
1)如果img = [UIImage alloc]init] ; 導航條屬性:translucency(半透明)。
2)建議使用不透明的背景圖傅瞻。一般高度:設置成64 = 導航欄的高度 + 狀態(tài)欄的高度。
方法二:
1)常侦、聲明即將存儲導航條下面那條橫線的圖片視圖容器:
@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.需要在這兩個viewWillAppear和viewWillDisappear方法里,進行處理一下:
-
(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated]; navBarHairlineImageView.hidden = YES;
}
-
(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated]; navBarHairlineImageView.hidden = NO;
}