UIVisualEffectView 不会在 effect = nil 后消失

UIVisualEffectView won't disappear after effect = nil

我的 ViewController 有模糊效果,但是通过调用 blurView.effect = nil,模糊不会消失,即使我调用 print(blurView.effect) 它打印出 "nil"。我能做什么?

@IBOutlet weak var blurView: UIVisualEffectView!
var effect =UIVisualEffect!

override func viewDidLoad() {
    super.viewDidLoad()

    effect = blurView.effect
    blurView.effect = nil
    print(blurView.effect)
}

我很确定您正在寻找的答案是:

blurView.removeFromSuperview()
而不是
blurView.effect = 无

使用它将从父视图中删除视图及其中的所有内容。

希望对您有所帮助。

我没有测试上面的答案,但如果我是你,我宁愿这样应用它:

    override func viewDidLoad() {
        super.viewDidLoad()


        let blurEffect = UIBlurEffect(style: UIBlurEffect.Style.dark)
        let blurEffectView = UIVisualEffectView(effect: blurEffect)
        blurEffectView.frame = self.view.bounds
        blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        self.view.addSubview(blurEffectView)

        blurEffectView.removeFromSuperview()

    }