Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 导航栏将不透明_Swift_Uikit_Uinavigationbar - Fatal编程技术网

Swift 导航栏将不透明

Swift 导航栏将不透明,swift,uikit,uinavigationbar,Swift,Uikit,Uinavigationbar,我需要导航栏变得透明。以下是我在我的ViewController中输入的内容: class ViewController: UIViewController { @IBOutlet weak var navbar: UINavigationBar! override func viewDidLoad() { super.viewDidLoad() navbar.isTranslucent=true navbar.shadowImage = UIImage()

我需要导航栏变得透明。以下是我在我的
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
}

如果您使用最新的测试版iOS 13.4和XCode 11.4进行构建,那么xmhafiz答案将不再有效。 我找到了另一种方法,也许只是测试版软件中的一个bug,但我正在写下来,以防万一

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

我只是回来删除我想出来的答案-完全按照你的建议相同的方式。我会接受答案的。谢谢。对我有用。我用的是导航控制器,所以你的“导航栏”用的是“导航控制器?.navigationBar”