我在IB中创建了一个UIVisualEffectView和一个属性
@IBOutlet weak var visualEffectStack: UIVisualEffectView!
我可以使用
显示和隐藏视觉效果视图visualEffectStack.isHidden = false
visualEffectStack.isHidden = true
或使用alpha。
我想为视图的外观设置动画,但它没有动画。
visualEffectStack.alpha = 0
visualEffectStack.isHidden = false
UIView.animate(withDuration: 0.5, delay: 0.5, options: [.curveEaseIn, .beginFromCurrentState], animations: {
self.visualEffectStack.alpha = 1
})
我的代码中是否存在问题,还是视觉效果视图?
Swift 3.1和iOS 10
答案 0 :(得分:0)
在做了一些研究之后,我发现UIVisualEffectView
应始终保持alpha = 1.因此,永远不应该为alpha
或isHidden
设置动画。
设置正确的Alpha值
使用UIVisualEffectView类时,请避免使用小于1的Alpha值。创建视图 部分透明导致系统组合视图和 在屏幕外渲染过程中的所有关联子视图。 需要将UIVisualEffectView对象组合为内容的一部分 为了看起来正确,它们分层在上面。设置alpha 在视觉效果视图或其任何超级视图中小于1 导致许多效果看起来不正确或根本不显示。