Ios 模糊效果子层不会随xib而消失

Ios 模糊效果子层不会随xib而消失,ios,swift,xib,blur,Ios,Swift,Xib,Blur,我使用以下代码在视图上实现模糊效果(使用Swift 4.1,Xcode 9.3): myXib-加载nib视图并添加模糊子视图 func setup() { // load xib view Bundle.main.loadNibNamed("myXib", owner: self, options: nil) self.view.frame = bounds self.view.autoresizingMask = [.flexibleWidth, .flexi

我使用以下代码在视图上实现模糊效果(使用Swift 4.1,Xcode 9.3):

myXib-加载nib视图并添加模糊子视图

func setup() {
    // load xib view
    Bundle.main.loadNibNamed("myXib", owner: self, options: nil)
    self.view.frame = bounds
    self.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    self.addSubview(self.view)

    // create blur effect
    let blurEffect = UIBlurEffect(style: .light)
    let blurEffectView = UIVisualEffectView(effect: blurEffect)
    blurEffectView.frame = blurView.bounds
    blurView.translatesAutoresizingMaskIntoConstraints = false
    blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    blurView.insertSubview(blurEffectView, at: 0)
    isBlurShowing = true
}
我使用一个简单的切换按钮来调用show()或hide()函数

func hide() {
    blurView.isHidden = true
    blurView.alpha = 0
    isBlurShowing = false
}

func show() {
    blurView.isHidden = false
    blurView.alpha = 1
    isBlurShowing = true
}
myXib样本如下所示:

其中灰色区域为模糊视图(通常设置为“清除颜色”,此处仅设置为灰色以便于描述。)

对于blurView下的视图(橙色)但在Xib内部,hide()函数正常工作,但对于Xib视图下的视图(蓝色),模糊效果仍然存在

启用模糊时(.isHidden=false,.alpha=1)

禁用模糊((.isHidden=true,.alpha=0)

禁用时,模糊效果较小,但仍然存在。 我做错了什么

提前谢谢。

好的,我想好了

问题是我在0处创建了第二个模糊层,因为我在init函数中也调用了它,方法是:

override init (frame : CGRect) {
    super.init(frame: frame)
    setup()
}

required init? (coder aDecoder : NSCoder) {
    super.init(coder: aDecoder)
    setup()
}
一旦我删除了这些代码,代码就正常工作了