缺少iOS导航栏底线
我通过在ViewWillDisplay中添加以下代码使导航栏完全透明:缺少iOS导航栏底线,ios,Ios,我通过在ViewWillDisplay中添加以下代码使导航栏完全透明: self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default) self.navigationController?.navigationBar.shadowImage = UIImage() self.navigationController?.navigationBar.
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.translucent = true
self.navigationController?.navigationBar.barStyle = UIBarStyle.Black
在当前视图消失之前,我通过在ViewDidDemouse方法中执行此操作重置导航栏:
self.navigationController?.navigationBar.setBackgroundImage(nil, forBarMetrics: UIBarMetrics.Default)
self.navigationController?.navigationBar.shadowImage = nil
但结果是导航栏的小底线丢失了,下面是显示正常导航栏的图像:
但结果是这样的:
知道发生了什么事吗?有什么解决办法吗?
谢谢它丢失了,因为您将“阴影图像”设置为零。要解决此问题,请删除下面的行:
self.navigationController?.navigationBar.shadowImage = nil
它能解决你的问题吗?不,它不能。导航栏的小线条仍然没有显示upBond,你能解释一下你的应用程序的故事板,它是什么时候发生的,是如何发生的吗?另外,我想了解为什么要使用ViewWillAspect/ViewDidDemouse方法。通常,我们使用的是appDelegate…didFinish。。。方法自定义所有控件(如导航栏)的外观。之后,当我们需要定制特定的视图控制器时,我们使用viewDidLoad。方法假设您在主(根)视图控制器中,并推送另一个控制器,但此控制器是透明的。为此,两个视图控制器都需要使用viewDidLoad。并根据您的需要重新设置所有内容。谢谢你的建议,我会试试的。事实上,我对iOS编程还比较陌生。这是我的第二个项目。但我仍然非常感激。我的情况为什么会发生,可能与我制作故事板的方式有关。我选择了一个导航控制器应用程序,以便已经为我设置了两个视图,一个是表视图。但我不希望表视图控制器成为导航控制器的根控制器,因此我将其删除,并将普通UIView拖到情节提要上,使我的自定义控制器成为导航控制器的根控制器。删除上述代码是错误的答案。实际上,上面的代码用于使底线可见。