如何设置透明导航栏? iOS 11 swift 4 Xcode 9
How to set a transparent navigation bar? iOS 11 swift 4 Xcode 9
右图是我需要的,左图是我得到的:
1
我正在尝试制作一个透明的导航栏,在我正在阅读的书中写道,您需要做的就是将这段代码插入到首选视图控制器的 viewDidLoad() 方法中:
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.tintColor = .white
tableView.contentInsetAdjustmentBehavior = .never
但我得到的只是一个白色的导航栏。
另外,如果写的是图片上的条形差异在这段代码中:
tableView.contentInsetAdjustmentBehavior = .never
但是对我不起作用
我下载了本书章节的最终项目,一切正常,尽管我尝试复制粘贴代码,但仍然没有任何改变
事实是 - 我已经尝试插入此代码:
navigationController?.navigationBar.isTranslucent = true
But it doesn't work
如果重要的话,这本书是 "Beginning iOS 11 programming" 出自 AppCoda
检查此代码
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
}
override func viewWillDisappear(_ animated: Bool) {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = false
}
使用以下代码:
navigationController?.navigationBar.isTranslucent = true
希望对您有所帮助。
编辑(更新)
使用下面的代码:
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.isTranslucent = false
更新 2
override func viewDidAppear(_ animated: Bool) {
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.isTranslucent = true
navigationController?.navigationBar.tintColor = .red
}
必须工作。
右图是我需要的,左图是我得到的:
1
我正在尝试制作一个透明的导航栏,在我正在阅读的书中写道,您需要做的就是将这段代码插入到首选视图控制器的 viewDidLoad() 方法中:
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.tintColor = .white
tableView.contentInsetAdjustmentBehavior = .never
但我得到的只是一个白色的导航栏。 另外,如果写的是图片上的条形差异在这段代码中:
tableView.contentInsetAdjustmentBehavior = .never
但是对我不起作用
我下载了本书章节的最终项目,一切正常,尽管我尝试复制粘贴代码,但仍然没有任何改变
事实是 - 我已经尝试插入此代码:
navigationController?.navigationBar.isTranslucent = true
But it doesn't work
如果重要的话,这本书是 "Beginning iOS 11 programming" 出自 AppCoda
检查此代码
override func viewWillAppear(_ animated: Bool) {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
}
override func viewWillDisappear(_ animated: Bool) {
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = false
}
使用以下代码:
navigationController?.navigationBar.isTranslucent = true
希望对您有所帮助。
编辑(更新)
使用下面的代码:
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.isTranslucent = false
更新 2
override func viewDidAppear(_ animated: Bool) {
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.isTranslucent = true
navigationController?.navigationBar.tintColor = .red
}
必须工作。