iOS開發--隱藏(去除)導覽列底部橫線,ios導覽列
iOS開發大部分情況下會使用到導覽列,由於我司的app導覽列需要與下面緊挨著的視窗顏色一致,導覽列底部的橫線就會影響這個美觀,LZ使用了以下方法。覺得不錯,分享來給小夥伴們。
1)聲明UIImageView變數,儲存底部橫線
@interface MyViewController { UIImageView *navBarHairlineImageView;}
2)在viewDidLoad中加入:
navBarHairlineImageView = [self findHairlineImageViewUnder:self.navigationController.navigationBar];
3)實現找出底部橫線的函數
- (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;}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
4)最後在viewWillAppear,viewWillDisappear中處理
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; navBarHairlineImageView.hidden = YES;}- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; navBarHairlineImageView.hidden = NO;}
上面使用了一種個人比較喜歡的方法,
下面來一個最簡單的:
的。
UINavigationBar *navigationBar = self.navigationController.navigationBar;// bg.png為自己ps出來的想要的背景顏色。[navigationBar setBackgroundImage:[UIImage imageNamed:@"bg.png"] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];[navigationBar setShadowImage:[UIImage new]];
這是唯一一個隱藏這條線的官方用法,但是有一個缺陷-刪除了translucency(半透明)
總體來說,第二種辦法還是很好地,建議大家使用第二種辦法。