我希望导航栏的背景为0.5 alpha的颜色,以便能够部分地看到下面视图的内容。我试过这样做:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.barTintColor = UIColor.blue
self.navigationController?.navigationBar.isTranslucent = true
}
如果我将isTranslucent
设置为true
,那么navigationBar
颜色就会清晰。如果我将isTranslucent
设置为false
,即使我设置UIColor.blue.alpha(0.5)
我怎么能这样做?
答案 0 :(得分:1)
如果你只想要NavigationBar
(不包括状态栏)背景,请使用alpha ..试试这个
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.navigationBar.backgroundColor = UIColor.blue.withAlphaComponent(0.5)
}
如果你想要包含status bar
的alpha背景色,我担心你必须使用带有alpha值的图像。 see this
答案 1 :(得分:0)
您还可以制作所需颜色和透明度的图片,然后在AppDelegate
函数的didFinishLaunchingWithOptions
中添加以下内容:
//navigation bar
let navBackgroundImage:UIImage! = UIImage(named: "nav.png")
UINavigationBar.appearance().setBackgroundImage(navBackgroundImage, for: .default)
其中nav.png
是您的形象。
希望这会有所帮助。 :)