Navigation Bar不会变透明
Navigation Bar will not become transparent
我需要导航栏变透明。这是我在 ViewController
:
中输入的内容
class ViewController: UIViewController {
@IBOutlet weak var navbar: UINavigationBar!
override func viewDidLoad() {
super.viewDidLoad()
navbar.isTranslucent=true
navbar.shadowImage = UIImage()
navbar.backgroundColor = UIColor.clear
}
根据调试视图层次结构 UIVisualEffectBackdropView
、UIVisualEffectSubview
和 UIVisualEffectSubview
(是的,其中两个)阻止它变得透明。
Ps: 我没有使用导航控制器。
我该如何解决?
这三行应该足以使您的 UINavigationBar
透明。
override func viewDidLoad() {
super.viewDidLoad()
// make transparent the navbar
navbar.setBackgroundImage(UIImage(), for: .default)
navbar.shadowImage = UIImage()
navbar.isTranslucent = true
}
如果您使用最新的 beta iOS 13.4 和 XCode 11.4 构建,xmhafiz 答案将不再有效。
我找到了另一种方法,也许它只是测试版软件中的一个错误,但我把它写在那里,以防万一
import UIKit
class TransparentNavBar :UINavigationBar {
override func awakeFromNib() {
super.awakeFromNib()
self.setBackgroundImage(UIImage(), for: .default)
self.shadowImage = UIImage()
self.isTranslucent = true
self.backgroundColor = .clear
if #available(iOS 13.0, *) {
self.standardAppearance.backgroundColor = .clear
self.standardAppearance.backgroundEffect = .none
self.standardAppearance.shadowColor = .clear
}
}
}
我需要导航栏变透明。这是我在 ViewController
:
class ViewController: UIViewController {
@IBOutlet weak var navbar: UINavigationBar!
override func viewDidLoad() {
super.viewDidLoad()
navbar.isTranslucent=true
navbar.shadowImage = UIImage()
navbar.backgroundColor = UIColor.clear
}
根据调试视图层次结构 UIVisualEffectBackdropView
、UIVisualEffectSubview
和 UIVisualEffectSubview
(是的,其中两个)阻止它变得透明。
Ps: 我没有使用导航控制器。
我该如何解决?
这三行应该足以使您的 UINavigationBar
透明。
override func viewDidLoad() {
super.viewDidLoad()
// make transparent the navbar
navbar.setBackgroundImage(UIImage(), for: .default)
navbar.shadowImage = UIImage()
navbar.isTranslucent = true
}
如果您使用最新的 beta iOS 13.4 和 XCode 11.4 构建,xmhafiz 答案将不再有效。 我找到了另一种方法,也许它只是测试版软件中的一个错误,但我把它写在那里,以防万一
import UIKit
class TransparentNavBar :UINavigationBar {
override func awakeFromNib() {
super.awakeFromNib()
self.setBackgroundImage(UIImage(), for: .default)
self.shadowImage = UIImage()
self.isTranslucent = true
self.backgroundColor = .clear
if #available(iOS 13.0, *) {
self.standardAppearance.backgroundColor = .clear
self.standardAppearance.backgroundEffect = .none
self.standardAppearance.shadowColor = .clear
}
}
}