去掉NavBar下面的黑線

所有的事兒都與起因,追其原因,然后找到答案,從而使得進(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];  
}  
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容