我从一种方法初始化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()