我展示了一个模态视图控制器,其背景为valid_network
,UIVisualEffectView
类型为UIBlurEffect
我将如下所示呈现模态视图控制器:
.light
我注意到在infoViewController.modalPresentationStyle = .overFullScreen
infoViewController.modalTransitionStyle = .crossDissolve
self.present(infoViewController, animated: true, completion: nil)
动画完成之前不会出现模糊效果视图。
对于crossDissolve
等其他过渡样式,情况并非如此。
仅在使用Swift 3的iOS 10上发生这种情况。
如何让coverVertical
动画与crossDissolve
上的视觉效果视图一起使用。有任何建议/解决方法吗?
答案 0 :(得分:4)
我所做的是将crossDisolve
替换为CATransition
,如下所示:
self.present(controller,
animated: false,
completion: nil)
let transition = CATransition()
transition.duration = 0.3
transition.type = kCATransitionFade
view.window?.layer.add(transition, forKey: nil)
希望它有所帮助。
答案 1 :(得分:1)
检查你的消费者,你应该看到原因 -
< _UIPopoverBackgroundVisualEffectView 0x7fe053562840>被要求动画其不透明度。这将导致效果显示为不透明,直到不透明度返回到1。
您无法将UIVisualEffectView
与crossDissolve
动画...