所有的事兒都與起因,追其原因,然后找到答案,從而使得進(jìn)步
著名程序員【祈·烏牧鲅格】曾經(jīng)說(shuō)過,每個(gè)程序員的成長(zhǎng)都是一個(gè)踩坑的過程,坑踩過了才能盡可能少的產(chǎn)生問題。

nav下面的黑線.png
我就想問問這是什么鬼,為什么有個(gè)黑線??
嘗試了修改navbar的背景顏色,也嘗試修改了我的searchbar的顏色。??墒沁€是找不到原因。
那么怎么辦呢?那么做個(gè)游戲吧-----找到黑線

找到黑線.png
我也是滿臉黑線啊.....
原來(lái)黑線是這個(gè)東西

原來(lái)黑線是這個(gè)o(╯□╰)o.png
既然問題找到了那么就開始尋求解決方法吧
1-我需要找到這根黑線
- (UIImageView *)getLineViewInNavigationBar:(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 getLineViewInNavigationBar:subview];
if (imageView) {
return imageView;
}
}
return nil;
}
通過遍歷NavBar,找到我需要的這根黑線
然后將其在ViewController里面賦值給本頁(yè)面的lineView
@property (nonatomic, weak) UIImageView *lineView;
然后再viewDidLoad方法里面調(diào)用
//視圖加載完成獲取到導(dǎo)航欄最下面的黑線
- (void)viewDidLoad {
[super viewDidLoad];
//獲取導(dǎo)航欄下面黑線
_lineView = [self getLineViewInNavigationBar:self.navigationController.navigationBar];
}
并且在- (void)viewWillAppear:(BOOL)animated和- (void)viewWillDisappear:(BOOL)animated
//視圖將要顯示時(shí)隱藏
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
_lineView.hidden = YES;
self.navigationController.navigationBar.translucent = YES;
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
}
視圖將要消失時(shí)取消隱藏
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
_lineView.hidden = NO;
self.navigationController.navigationBar.translucent = NO;
self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
}