在导航栏中使用alpha设置背景颜色

时间:2017-05-23 04:03:34

标签: ios swift3 uinavigationbar alpha uicolor

我希望导航栏的背景为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)

,颜色也是不透明的

我怎么能这样做?

2 个答案:

答案 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是您的形象。

希望这会有所帮助。 :)