我从一种方法初始化UIVisualEffectView,并需要用另一种方法将其删除。

func showBlur() {
    let blurEffect: UIBlurEffect = UIBlurEffect(style: .Light)
    let blurView = UIVisualEffectView(effect: blurEffect)
    // ...
}
func destroyBlur {
    // i can’t destroy via remove from superview it here, blurView was initialized in showBlur()
}

我试过不在方法中而是在类中启动blurView…UIViewController中的init()存在问题。

我试图在view.subViews中找到该视图,但是我没有运气。

我尝试将标签设置为UIView,但最近在subView列表中找不到该标签。

最佳答案

您可以创建属性以在类的开头存储UIVisualEffectView:

var blurView: UIVisualEffectView!

showBlur()函数中,该变量的效果如下:
let blurEffect: UIBlurEffect = UIBlurEffect(style: .Light)
blurView = UIVisualEffectView(effect: blurEffect)

并在destroyBlur()中调用:
blurView.removeFromSuperview()

10-08 17:42