Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从其他方法中删除子视图_Ios_Swift_View_Uiblureffect_Uivisualeffectview - Fatal编程技术网

Ios 从其他方法中删除子视图

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

我从一个方法初始化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.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();
}