暂无描述

PresentAppearAnimatedTransitioning.swift 1.5KB

    // // PresentAppearAnimatedTransitioning.swift // PaiAi // // Created by ffib on 2018/12/16. // Copyright © 2018 yb. All rights reserved. // import UIKit final class PresentAppearAnimatedTransitioning: NSObject, UIViewControllerAnimatedTransitioning { weak var delegate: PresentAnimatorDelegate? fileprivate var animator: PresentAnimatable init(animator: PresentAnimatable) { self.animator = animator super.init() } func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval { return 0.3 } func animateTransition(using transitionContext: UIViewControllerContextTransitioning) { guard let toVC = transitionContext.viewController(forKey: .to), let toView = toVC.view, let animationView = delegate?.animationView else { return } transitionContext.containerView.addSubview(toView) toView.addSubview(animationView) let duration = transitionDuration(using: transitionContext) animator.toViewPresentedAnimation(duration: duration, in: toView) animator.contentViewAppearAnimation(duration: duration, in: animationView) DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + duration) { let isCancelled = transitionContext.transitionWasCancelled transitionContext.completeTransition(!isCancelled) UIApplication.shared.endIgnoringInteractionEvents() } } }