所有的事儿都与起因,追其原因,然后找到答案,从而使得进步
著名程序员【祈·乌牧鲅格】曾经说过,每个程序员的成长都是一个踩坑的过程,坑踩过了才能尽可能少的产生问题。
我就想问问这是什么鬼,为什么有个黑线??
尝试了修改navbar的背景颜色,也尝试修改了我的searchbar的颜色。。可是还是找不到原因。
那么怎么办呢?那么做个游戏吧-----找到黑线
我也是满脸黑线啊.....
原来黑线是这个东西
既然问题找到了那么就开始寻求解决方法吧
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方法里面调用
//视图加载完成获取到导航栏最下面的黑线
- (void)viewDidLoad {
[super viewDidLoad];
//获取导航栏下面黑线
_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];
}