繁体   English   中英

从子视图中删除VisualEffectView

[英]Remove VisualEffectView from subview

我使用布尔条件定义了一个VisualEffectView 在这种情况下,按下按钮时,将使用active: true调用此函数

func addVisualEffectView(active: Bool) {
    let blurEffect = UIBlurEffect(style: .dark)
    let blurEffectView = UIVisualEffectView(effect: blurEffect)
    if active {
        blurEffectView.alpha = 0.5
        blurEffectView.frame = self.view.frame
        self.view.insertSubview(blurEffectView, at: 2)
    } else {
        blurEffectView.removeFromSuperview()
    }
}

在另一个按钮中,使用active: false再次调用此函数,它应该从屏幕上删除VisualEffectView子视图,但它不会。 你能帮帮我,告诉我问题在哪里吗?

如果您已添加一次,然后再次调用您的函数,它将不会删除以前添加的视图,它将不会添加新的UIVisualEffectView 您需要能够通过保持使用其tag属性来跟踪您创建的视图。

func addVisualEffectView(active: Bool) {
    if active {
        let blurEffect = UIBlurEffect(style: .dark)
        let blurEffectView = UIVisualEffectView(effect: blurEffect)
        blurEffectView.alpha = 0.5
        blurEffectView.frame = self.view.frame
        blurEffectView.tag = 332211
        self.view.insertSubview(blurEffectView, at: 2)
    } else {
        self.view.viewWithTag(332211)?.removeFromSuperview()
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM