去除导航栏下方的横线

方法一:

[self .navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:XBColor_Blue] forBarMetrics:UIBarMetricsDefault] ;

[self.navigationController.navigationBar setShadowImage:[UIImage new]];

 

方法二:

- (void)setNeedsNavigationBackground:(CGFloat)alpha {
    // 导航栏背景透明度设置
    UIView *barBackgroundView = [[self.navigationBar subviews] objectAtIndex:0];// _UIBarBackground
    UIImageView *backgroundImageView = [[barBackgroundView subviews] objectAtIndex:0];// UIImageView
    if (self.navigationBar.isTranslucent) {
        if (backgroundImageView != nil && backgroundImageView.image != nil) {
            barBackgroundView.alpha = alpha;
        } else {
            UIView *backgroundEffectView = [[barBackgroundView subviews] objectAtIndex:1];// UIVisualEffectView
            if (backgroundEffectView != nil) {
                backgroundEffectView.alpha = alpha;
            }
        }
    } else {
        barBackgroundView.alpha = alpha;
    }
}
// 对导航栏下面那条线做处理
self.navigationBar.clipsToBounds = alpha == 0.0;

 

发布了78 篇原创文章 · 获赞 44 · 访问量 17万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章