使用UIModalTransitionStyle CrossDissolve的UIVisualEffectView延迟

时间:2016-10-17 12:13:23

标签: ios swift xcode uikit swift3

我展示了一个模态视图控制器,其背景为valid_networkUIVisualEffectView类型为UIBlurEffect

我将如下所示呈现模态视图控制器:

.light

我注意到在infoViewController.modalPresentationStyle = .overFullScreen infoViewController.modalTransitionStyle = .crossDissolve self.present(infoViewController, animated: true, completion: nil) 动画完成之前不会出现模糊效果视图。 对于crossDissolve等其他过渡样式,情况并非如此。

仅在使用Swift 3的iOS 10上发生这种情况。

如何让coverVertical动画与crossDissolve上的视觉效果视图一起使用。有任何建议/解决方法吗?

2 个答案:

答案 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。

您无法将UIVisualEffectViewcrossDissolve动画...

一起使用