Files
Woka_Native_iOS/WOKA/TabBar & SideMenu/SideMenu/BasicTransitionAnimator.swift

51 lines
1.8 KiB
Swift

//
// TransitionAnimator.swift
// SideMenu
//
// Created by kukushi on 2018/8/8.
// Copyright © 2018 kukushi. All rights reserved.
//
import UIKit
// A Simple transition animator can be configured with animation options.
public class BasicTransitionAnimator: NSObject, UIViewControllerAnimatedTransitioning {
let animationOptions: UIView.AnimationOptions
let duration: TimeInterval
/// Initialize a new animator with animation options and duration.
///
/// - Parameters:
/// - options: animation options
/// - duration: animation duration
public init(options: UIView.AnimationOptions = .transitionCrossDissolve, duration: TimeInterval = 0.4) {
self.animationOptions = options
self.duration = duration
}
// MARK: UIViewControllerAnimatedTransitioning
public func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
return duration
}
public func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
guard let fromViewController = transitionContext.viewController(forKey: .from),
let toViewController = transitionContext.viewController(forKey: .to) else {
return
}
transitionContext.containerView.addSubview(toViewController.view)
let duration = transitionDuration(using: transitionContext)
UIView.transition(from: fromViewController.view,
to: toViewController.view,
duration: duration,
options: animationOptions,
completion: { (_) in
transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
})
}
}