Fixes animation when launching a game when a game is already running

This commit is contained in:
Riley Testut 2017-10-12 11:13:49 -07:00
parent c16562c8ca
commit df0c307be4
2 changed files with 11 additions and 7 deletions

View File

@ -12,8 +12,12 @@ class GamesPresentationController: UIPresentationController
{ {
private let blurView: UIVisualEffectView private let blurView: UIVisualEffectView
override init(presentedViewController: UIViewController, presenting presentingViewController: UIViewController?) private let animator: UIViewPropertyAnimator
init(presentedViewController: UIViewController, presenting presentingViewController: UIViewController?, animator: UIViewPropertyAnimator)
{ {
self.animator = animator
self.blurView = UIVisualEffectView(effect: nil) self.blurView = UIVisualEffectView(effect: nil)
self.blurView.autoresizingMask = [.flexibleWidth, .flexibleHeight] self.blurView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
@ -27,16 +31,16 @@ class GamesPresentationController: UIPresentationController
self.blurView.frame = CGRect(x: 0, y: 0, width: containerView.bounds.width, height: containerView.bounds.height) self.blurView.frame = CGRect(x: 0, y: 0, width: containerView.bounds.width, height: containerView.bounds.height)
containerView.addSubview(self.blurView) containerView.addSubview(self.blurView)
self.presentedViewController.transitionCoordinator?.animate(alongsideTransition: { (context) in self.animator.addAnimations {
self.blurView.effect = UIBlurEffect(style: .dark) self.blurView.effect = UIBlurEffect(style: .dark)
}) }
} }
override func dismissalTransitionWillBegin() override func dismissalTransitionWillBegin()
{ {
self.presentedViewController.transitionCoordinator?.animate(alongsideTransition: { (context) in self.animator.addAnimations {
self.blurView.effect = nil self.blurView.effect = nil
}) }
} }
override func dismissalTransitionDidEnd(_ completed: Bool) override func dismissalTransitionDidEnd(_ completed: Bool)

View File

@ -48,7 +48,7 @@ extension GamesStoryboardSegue: UIViewControllerTransitioningDelegate
func presentationController(forPresented presentedViewController: UIViewController, presenting presentingViewController: UIViewController?, source: UIViewController) -> UIPresentationController? func presentationController(forPresented presentedViewController: UIViewController, presenting presentingViewController: UIViewController?, source: UIViewController) -> UIPresentationController?
{ {
let presentationController = GamesPresentationController(presentedViewController: presentedViewController, presenting: presentingViewController) let presentationController = GamesPresentationController(presentedViewController: presentedViewController, presenting: presentingViewController, animator: self.animator)
return presentationController return presentationController
} }
} }