我想淡入淡出带有UIBlurEffect的UIVisualEffectsView:

var blurEffectView = UIVisualEffectView()
blurEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .dark))

我在由UIButton调用的函数中使用普通动画来使其淡入,这与淡出效果相同,但.alpha = 0hidden = true:
blurEffectView.hidden = false
UIView.animate(withDuration: 1, delay: 0, options: .curveEaseOut) {
    self.blurEffectView.alpha = 1
}

现在,在两个方向上都可以进行淡入淡出,但是当将淡出时却给了我一个错误:



问题

如何成功地将UIVisualEffectView淡入和淡出,而又不破坏它和使淡入淡出呢?

注意
  • 我试图将UIVisualEffectView放入UIView并淡入那一个,但没有成功
  • 最佳答案

    我认为这是iOS9中的新功能,但是您现在可以在动画块中设置UIVisualEffectView的效果:

    let overlay = UIVisualEffectView()
    // Put it somewhere, give it a frame...
    UIView.animate(withDuration: 0.5) {
        overlay.effect = UIBlurEffect(style: .light)
    }
    

    将其设置为nil即可删除。

    非常重要-在模拟器上进行测试时,请确保将模拟器的“图形质量替代”设置为“高质量”,以使其正常工作。

    09-28 12:57