【问题标题】:Setting a background color with alpha in Navigation bar在导航栏中使用 alpha 设置背景颜色
【发布时间】:2017-10-22 20:43:49
【问题描述】:

我希望导航栏的背景是 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),颜色也是不透明的

我该怎么做?

【问题讨论】:

    标签: ios swift3 uinavigationbar alpha uicolor


    【解决方案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

    【讨论】:

    • 谢谢,我只需要将该颜色应用到导航栏,但是按照您发布的操作时,我发现它也会影响状态栏,现在我看到它以清晰的背景颜色显示。有没有办法防止这种情况发生?
    【解决方案2】:

    您还可以制作所需颜色和透明度的图像,然后在 AppDelegatedidFinishLaunchingWithOptions 函数中添加以下内容:

    //navigation bar
            let navBackgroundImage:UIImage! = UIImage(named: "nav.png")
            UINavigationBar.appearance().setBackgroundImage(navBackgroundImage, for: .default)
    

    nav.png 是您的图像。

    希望这会有所帮助。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多