小编典典

如何淡入和淡出UIVisualEffectView和/或UIBlurEffect?

swift

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

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

我在a调用的函数中使用普通动画UIButton来使其淡入,对于淡出也相同,但.alpha = 0hidden = true

blurEffectView.hidden = false
UIView.animate(withDuration: 1, delay: 0, options: .curveEaseOut) {
    self.blurEffectView.alpha = 1
}

现在,在两个方向上褪色的工作,但衰落时,它给我一个错误

<UIVisualEffectView 0x7fdf5bcb6e80>被要求动画其不透明度。这将导致效果显示为残破,直到不透明度恢复到1。

如何成功地淡入UIVisualEffectView和淡出而不 破坏 它并使其褪色?

注意

  • 我试图将其UIVisualEffectView放进去UIView并逐渐消失,但没有成功

阅读 390

收藏
2020-07-07

共1个答案

小编典典

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

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

将其设置nil为删除。

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

2020-07-07