我想淡入淡出带有UIBlurEffect的UIVisualEffectsView:
var blurEffectView = UIVisualEffectView() blurEffectView = UIVisualEffectView(effect: UIBlurEffect(style: .dark))
我在a调用的函数中使用普通动画UIButton来使其淡入,对于淡出也相同,但.alpha = 0&hidden = true:
UIButton
.alpha = 0
hidden = true
blurEffectView.hidden = false UIView.animate(withDuration: 1, delay: 0, options: .curveEaseOut) { self.blurEffectView.alpha = 1 }
现在,在两个方向上褪色的工作,但衰落时,它给我一个错误 了 :
<UIVisualEffectView 0x7fdf5bcb6e80>被要求动画其不透明度。这将导致效果显示为残破,直到不透明度恢复到1。
<UIVisualEffectView 0x7fdf5bcb6e80>
题
如何成功地淡入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为删除。
nil
非常重要-在模拟器上进行测试时,请确保将模拟器的“图形质量替代”设置为“高质量”,以使其正常工作。