UIVisualEffectView在effect = nil后不会消失

时间:2019-11-17 15:13:15

标签: swift xcode uiblureffect

我对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)
}

1 个答案:

答案 0 :(得分:1)

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

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()

    }