iOS navigationBar導(dǎo)航欄底部與self.view的分界線的隱藏

  • ios開發(fā)中經(jīng)常碰到各種需求,比如要求導(dǎo)航欄的顏色和self.view的顏色一樣,當我們直接設(shè)置navigationBar的顏色和view一樣時,我們會發(fā)現(xiàn)navigationBar還會有一條分割線留下,本文就是介紹怎么隱藏導(dǎo)航欄底部的分割線的。

  • 第一種方法:不會影響導(dǎo)航欄translucent 半透明的顯示

  • 首先在viewDidLoad 定義一個 UIImageView *navigationImageView 來存儲底部分割線。

UIImageView *navigationImageView = [self findHairlineImageViewUnder:self.navigationController.navigationBar];
self.navigationImageView = navigationImageView;
-(UIImageView *)findHairlineImageViewUnder:(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 findHairlineImageViewUnder:subview];
       if (imageView) {
           return imageView;
       }
   }
   return nil;
}
-(void)viewWillAppear:(BOOL)animated {
 [super viewWillAppear:animated]; self.navigationImageView.hidden = YES;
}

-(void)viewDidDisappear:(BOOL)animated {
 [super viewDidDisappear:animated]; self.navigationImageView.hidden = NO;
}
  • 第二種方法:會刪除導(dǎo)航欄 translucent 半透明的顯示。
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navImage"] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
    
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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