在swift中删除BlurView

时间:2015-11-03 16:51:32

标签: ios swift uiview uiblureffect

我有UIView,其中包含按钮和标签。按下这些按钮后,使用下面的代码会使UIView变得模糊。

@IBOutlet weak var blurView: UIView!
var blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Dark)
var blurEffectView = UIVisualEffectView(effect: blurEffect)
blurEffectView.frame = blurView.bounds
blurView.addSubview(blurEffectView)

但是,我想稍后删除模糊效果。 删除模糊UIView的代码是什么?

2 个答案:

答案 0 :(得分:11)

很难确切地知道代码中发生了什么,因为您已经明确发布了一个剪切版本(最后4行是某个方法的一部分,大概是)。

您可以执行以下操作,从UIVisualEffectView中删除所有blurView子视图:

for subview in blurView.subviews {
    if subview is UIVisualEffectView {
        subview.removeFromSuperview()
    }
}

答案 1 :(得分:0)

func addBlurEffect(view: UIView, style: UIBlurEffect.Style) {
    view.backgroundColor = UIColor.clear

    let blurEffect = UIBlurEffect(style: style)
    let blurEffectView = UIVisualEffectView(effect: blurEffect)
    blurEffectView.frame = view.bounds
    blurEffectView.tag = 9
    view.insertSubview(blurEffectView, at: 0)
}

func removeBlurEffect(view: UIView){
    view.viewWithTag(9)?.removeFromSuperview()
}