Ios 从其他方法中删除子视图
我从一个方法初始化UIVisualEffectView,需要用另一个方法删除它Ios 从其他方法中删除子视图,ios,swift,view,uiblureffect,uivisualeffectview,Ios,Swift,View,Uiblureffect,Uivisualeffectview,我从一个方法初始化UIVisualEffectView,需要用另一个方法删除它 func showBlur() { let blurEffect: UIBlurEffect = UIBlurEffect(style: .Light) let blurView = UIVisualEffectView(effect: blurEffect) // ... } func destroyBlur { // i can’t destroy via remove from
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.subview中找到该视图,但我没有运气
我已尝试将标记设置为UIView,但最近在子视图列表中找不到该标记。您可以创建属性以将UIVisualEffectView存储在类的开头:
var blurView: UIVisualEffectView!
并在showBlur()
函数中,停止此变量中的效果:
let blurEffect: UIBlurEffect = UIBlurEffect(style: .Light)
blurView = UIVisualEffectView(effect: blurEffect)
在destroyBlur()调用中:
您可以创建属性以在类的开头存储UIVisualEffectView:
var blurView: UIVisualEffectView!
并在showBlur()
函数中,停止此变量中的效果:
let blurEffect: UIBlurEffect = UIBlurEffect(style: .Light)
blurView = UIVisualEffectView(effect: blurEffect)
在destroyBlur()调用中:
如果我正确理解了这个问题,那么问题是您在showBlur()之外没有对blurView的引用 如果这是问题所在,则需要为blurView创建类成员(类属性) 您可能希望将此属性设置为可选属性,因为以后可能会设置,也可能不会设置 像这样的东西可能有用
var blurView:UIVisualEffectView?
稍后在代码中:
func showBlur() {
let blurEffect: UIBlurEffect = UIBlurEffect(style: .Light)
blurView = UIVisualEffectView(effect: blurEffect)
// ...
}
func destroyBlur {
blurView!.removeFromSuperview();
}
如果我正确理解了这个问题,那么问题是您在showBlur()之外没有对blurView的引用 如果这是问题所在,则需要为blurView创建类成员(类属性) 您可能希望将此属性设置为可选属性,因为以后可能会设置,也可能不会设置 像这样的东西可能有用
var blurView:UIVisualEffectView?
稍后在代码中:
func showBlur() {
let blurEffect: UIBlurEffect = UIBlurEffect(style: .Light)
blurView = UIVisualEffectView(effect: blurEffect)
// ...
}
func destroyBlur {
blurView!.removeFromSuperview();
}