iOS 去掉導(dǎo)航欄的邊界黑線

1.方法一:

 UIImage *img = [UIImage imageNamed:@""];

 [self.navigationController.navigationBar setBackgroundImage:img  forBarMetrics:UIBarMetricsDefault];

 self.navigationController.navigationBar.shadowImage = [[UIImage alloc] init];

注意:
1)如果img = [UIImage alloc]init] ; 導(dǎo)航條屬性:translucency(半透明)。
2)建議使用不透明的背景圖。一般高度:設(shè)置成64 = 導(dǎo)航欄的高度 + 狀態(tài)欄的高度。

方法二:
1)、聲明即將存儲(chǔ)導(dǎo)航條下面那條橫線的圖片視圖容器:

@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.需要在這兩個(gè)viewWillAppear和viewWillDisappear方法里,進(jìn)行處理一下:

  • (void)viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];
    navBarHairlineImageView.hidden = YES;
    

}

  • (void)viewWillDisappear:(BOOL)animated{

    [super viewWillDisappear:animated];
    navBarHairlineImageView.hidden = NO;
    

}

最后編輯于
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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