如何以编程方式使用 swift 用 UIView 覆盖整个屏幕

how to cover the entire screen with a UIView using swift programatically

我正在尝试放置一个 UIview() 来覆盖整个屏幕,因此当我按下一个按钮时,我可以在其上放置一个深色模式主题。它工作正常唯一的问题是它没有覆盖导航栏这是我想做的事情我已经查找了一些东西我发现这段代码它适用于我看过的教程但现在不起作用认为swift 更新了使该解决方案变旧的语言

    if let window = UIApplication.shared.keyWindow {
        let blackView = UIView()
        blackView.backgroundColor = .black
        view.addSubview(blackView)
               blackView.frame = window.frame



    } 

Swift 4.X

您可以在项目中添加扩展。

extension UIView {

    func addToWindow()  {
        let window = UIApplication.shared.keyWindow!
        self.frame = window.bounds
        window.addSubview(self)
    }
}

使用:

bgView = UIView(frame: UIScreen.main.bounds)
bgView.backgroundColor = UIColor(white: 0, alpha: 0.4)
bgView.addToWindow()