由于我是Swift的新手并且在我的FYP上工作,我有一个多个VC,现在我将通过.pushViewController(nextVC,animated:true)与下面连接的VC联系。我正在尝试使导航栏透明,以便在导航栏后面显示背景图像:
目前我的导航栏看起来像:
这是我的代码,
override func viewDidLoad() {
super.viewDidLoad()
//------
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
}
希望你们明白我的问题。任何帮助将受到高度赞赏。 感谢
答案 0 :(得分:0)
经过长时间的努力,我得到了解决方案。您可以说它很棘手,但可以使用Xcode 9及更高版本和swift 4为您提供帮助。
关于我的问题,我是通过pushViewController()来到这个VC的,所以当我到达那个VC时,我只是在这里使用ViewWillAppear()来改变我的NavBar并在移回之后从这个VC到以前的VC或任何其他控制器,所以我需要重置原始导航以支持它的原始样式,为此目的我使用viewWillDisappear()。
第1步:
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.navigationBar.shadowImage = nil
self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
self.navigationController?.navigationBar.isTranslucent = true
}
第2步:
为了增加导航栏高度,我在导航项的提示中添加了空格,并且还将y坐标设置为-20,以便从故事板导航栏下的导航栏上的状态栏到达导航栏的顶部。
第3步:最后和最后是
我在故事板的导航栏下设置了我的Alpha值是0.5
这一切都适合我,并且非常适合我。此外,您可以在完成所有步骤后查看我的输出。