欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

隐藏导航条底部的黑线_Swift下怎么去除Navigationbar下方的横线

程序员文章站 2022-01-10 19:56:41
...

估计是因为ios更新的原因,之前项目都是好好的,NavigationBar是没有黑线的,估计是因为更新的原因,导致NavigationBar又出现了黑线。用一个全透明的图片去覆盖navigationBar,这样运行模拟器,Navigationbar下方会出现一条横线,而有时候我们不需要这条横向,影响美观,那么这调横线是怎么形成的?

其实,这是shadoImage 在作怪,这调横线其实是NaVigationBar下产生的阴影效果,贴在一起就出现了横线的样式,其实很简单,如下代码就可以解决黑线了


Swift代码

override func viewWillAppear(_ animated: Bool){
    super.viewWillAppear(animated)
    
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
    self.navigationController?.navigationBar.shadowImage = UIImage()
    
}


OC代码

根据UI的设计,navigationbar需要跟界面一体化,但是下面这根黑线是比较烦的问题,可能界面一需要隐藏,界面二就要出现,也可能需要改变粗细之类的,又因为navigationbar会影响接下来的推栈,所以需要做一点小改动。

//在页面出现的时候就将黑线隐藏起来
 -(void)viewWillAppear:(BOOL)animated
{
    [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
    [self.navigationController.navigationBar setShadowImage:[UIImage new]];
}

//在页面消失的时候就让navigationbar还原样式
-(void)viewWillDisappear:(BOOL)animated{
 
    [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
    [self.navigationController.navigationBar setShadowImage:nil];
}