ios - 在导航栏中设置带有 alpha 的背景颜色

标签 ios swift3 uinavigationbar alpha uicolor

我希望导航栏的背景颜色为 0.5 alpha,以便能够部分看到下面 View 的内容。我尝试这样做:

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)

,颜色也是不透明的

我怎样才能做到这一点?

最佳答案

如果您只想使用 alpha 的 NavigationBar(不包括状态栏)背景.. 试试这个

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)
}

如果你想要带有 alpha 的背景颜色,包括状态栏,恐怕你必须使用带有 alpha 值的图像。 see this

关于ios - 在导航栏中设置带有 alpha 的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44125612/

相关文章:

ios - 如何将数据从 View Controller 传递到导航 Controller ,然后再传递到另一个 View Controller ?

ios - iPhone 导航栏标题文本颜色在 iOS 11 中的 viewWillAppear() 或 viewWillDisappear 函数中不会改变

ios7 - 导航栏下方的空白区域,且 displayedSearchBarInNavigationBar = YES

iphone - "Back"按钮没有出现在 UINavigationController 中

ios - CGBitmapInfo 值在 iOS 上的表现

ios - 动画 UIView 从左侧而不是中心增长

ios - 如何将 UTF8String 转换为基于 JSON 的 NSDictionary?

ios - Crashlytics Beta 无法找到测试人员 UDID

cocoa - Swift/Cocoa 中 NSTableView 的动态行高

ios - 如何修复尝试递归调用 -save coredata 错误?