隐藏导航条底部的黑线_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() }
根据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]; }