【问题标题】:Remove VisualEffectView from subview从子视图中删除 VisualEffectView
【发布时间】:2019-03-04 01:02:49
【问题描述】:

我使用布尔条件定义了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 子视图,但它没有。你能帮我告诉我问题出在哪里吗?

【问题讨论】:

    标签: ios swift subview uivisualeffectview


    【解决方案1】:

    如果你添加了一次,然后再次调用你的函数,它不会删除之前添加的视图,它不会添加新的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()
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-01-25
      • 1970-01-01
      • 1970-01-01
      • 2011-07-04
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多