use*_*309 0 uinavigationbar uikit swift
我需要导航栏变得透明。这是我在我的ViewController:
class ViewController: UIViewController {
@IBOutlet weak var navbar: UINavigationBar!
override func viewDidLoad() {
super.viewDidLoad()
navbar.isTranslucent=true
navbar.shadowImage = UIImage()
navbar.backgroundColor = UIColor.clear
}
Run Code Online (Sandbox Code Playgroud)
根据调试视图层次结构UIVisualEffectBackdropView,UIVisualEffectSubview并且UIVisualEffectSubview(是其中两个)阻止它变得透明。Ps:我没有使用导航控制器。
我该如何解决?
如果您使用最新的测试版 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
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
477 次 |
| 最近记录: |