所有的事兒都與起因谬泌,追其原因,然后找到答案逻谦,從而使得進步
著名程序員【祈·烏牧鲅格】曾經(jīng)說過掌实,每個程序員的成長都是一個踩坑的過程,坑踩過了才能盡可能少的產(chǎn)生問題邦马。
nav下面的黑線.png
我就想問問這是什么鬼贱鼻,為什么有個黑線?滋将?
嘗試了修改navbar的背景顏色邻悬,也嘗試修改了我的searchbar的顏色。随闽「阜幔可是還是找不到原因。
那么怎么辦呢?那么做個游戲吧-----找到黑線
找到黑線.png
我也是滿臉黑線啊.....
原來黑線是這個東西
原來黑線是這個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里面賦值給本頁面的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
//視圖將要顯示時隱藏
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
_lineView.hidden = YES;
self.navigationController.navigationBar.translucent = YES;
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
}
視圖將要消失時取消隱藏
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
_lineView.hidden = NO;
self.navigationController.navigationBar.translucent = NO;
self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
}