From 097e4476bc20b0166b27b9f2c4772e5f0050c550 Mon Sep 17 00:00:00 2001 From: Pavel Lyskov Date: Wed, 17 Oct 2018 10:28:35 +0500 Subject: [PATCH] More smooth Hi. I made some changes to your project. It works smoother now. --- AppStoreInteractiveTransition/Misc/GlobalConstants.swift | 2 +- .../Transition/CardPresentationController.swift | 6 +++--- .../Transition/DismissCardAnimator.swift | 4 ++-- .../ViewControllers/CardDetailViewController.swift | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/AppStoreInteractiveTransition/Misc/GlobalConstants.swift b/AppStoreInteractiveTransition/Misc/GlobalConstants.swift index 66d2cb4..113ed40 100644 --- a/AppStoreInteractiveTransition/Misc/GlobalConstants.swift +++ b/AppStoreInteractiveTransition/Misc/GlobalConstants.swift @@ -12,7 +12,7 @@ enum GlobalConstants { static let cardHighlightedFactor: CGFloat = 0.96 static let statusBarAnimationDuration: TimeInterval = 0.4 static let cardCornerRadius: CGFloat = 16 - static let dismissalAnimationDuration = 0.6 + static let dismissalAnimationDuration = 0.85 static let cardVerticalExpandingStyle: CardVerticalExpandingStyle = .fromTop diff --git a/AppStoreInteractiveTransition/Transition/CardPresentationController.swift b/AppStoreInteractiveTransition/Transition/CardPresentationController.swift index 9c15a74..687bdf1 100644 --- a/AppStoreInteractiveTransition/Transition/CardPresentationController.swift +++ b/AppStoreInteractiveTransition/Transition/CardPresentationController.swift @@ -26,13 +26,13 @@ final class CardPresentationController: UIPresentationController { blurView.translatesAutoresizingMaskIntoConstraints = false container.addSubview(blurView) blurView.edges(to: container) - blurView.alpha = 0.0 + blurView.effect = nil presentingViewController.beginAppearanceTransition(false, animated: false) presentedViewController.transitionCoordinator!.animate(alongsideTransition: { (ctx) in UIView.animate(withDuration: 0.5, animations: { self.blurView.effect = UIBlurEffect(style: .light) - self.blurView.alpha = 1 + }) }) { (ctx) in } } @@ -44,7 +44,7 @@ final class CardPresentationController: UIPresentationController { override func dismissalTransitionWillBegin() { presentingViewController.beginAppearanceTransition(true, animated: true) presentedViewController.transitionCoordinator!.animate(alongsideTransition: { (ctx) in - self.blurView.alpha = 0.0 + self.blurView.effect = nil }, completion: nil) } diff --git a/AppStoreInteractiveTransition/Transition/DismissCardAnimator.swift b/AppStoreInteractiveTransition/Transition/DismissCardAnimator.swift index 60fa49c..80ac163 100644 --- a/AppStoreInteractiveTransition/Transition/DismissCardAnimator.swift +++ b/AppStoreInteractiveTransition/Transition/DismissCardAnimator.swift @@ -62,8 +62,8 @@ final class DismissCardAnimator: NSObject, UIViewControllerAnimatedTransitioning animatedContainerView.centerXAnchor.constraint(equalTo: container.centerXAnchor).isActive = true let animatedContainerTopConstraint = animatedContainerView.topAnchor.constraint(equalTo: container.topAnchor, constant: 0) - let animatedContainerWidthConstraint = animatedContainerView.widthAnchor.constraint(equalToConstant: cardDetailView.frame.width) - let animatedContainerHeightConstraint = animatedContainerView.heightAnchor.constraint(equalToConstant: cardDetailView.frame.height) + let animatedContainerWidthConstraint = animatedContainerView.widthAnchor.constraint(equalToConstant: container.frame.width) + let animatedContainerHeightConstraint = animatedContainerView.heightAnchor.constraint(equalToConstant: container.frame.height) NSLayoutConstraint.activate([animatedContainerTopConstraint, animatedContainerWidthConstraint, animatedContainerHeightConstraint]) diff --git a/AppStoreInteractiveTransition/ViewControllers/CardDetailViewController.swift b/AppStoreInteractiveTransition/ViewControllers/CardDetailViewController.swift index 1ad6bb2..4b13ab9 100644 --- a/AppStoreInteractiveTransition/ViewControllers/CardDetailViewController.swift +++ b/AppStoreInteractiveTransition/ViewControllers/CardDetailViewController.swift @@ -160,13 +160,13 @@ class CardDetailViewController: StatusBarAnimatableViewController, UIScrollViewD dismissalAnimator!.stopAnimation(false) dismissalAnimator!.addCompletion { (pos) in switch pos { - case .end: + case .current: self.didSuccessfullyDragDownToDismiss() default: fatalError("Must finish dismissal at end!") } } - dismissalAnimator!.finishAnimation(at: .end) + dismissalAnimator!.finishAnimation(at: .current) } case .ended, .cancelled: