画面遷移時のメニューアニメーションをかっこよくしたいので、有名なライブラリを読んだ。
まず全体構造。
UIViewControllerAnimatedTransitioningプロトコルを適応したクラスを作り、
extension MenuTransitionAnimator: UIViewControllerAnimatedTransitioning {
public func animateTransition(using context: UIViewControllerContextTransitioning)
public func transitionDuration(using context: UIViewControllerContextTransitioning?) -> TimeInterval
}
を実装します。animateTransitionでは、アニメーションの内容を。transitionDurationでは遷移時間を記述します。
アニメーションは、animationTransitoinの引数cntextが保持する、transitionContext.containerViewを操作することで実装します。
ViewControllerでは、UINavigationControllerDelegateを適応する。
UINavigationControllerDelegateの
func navigationController(_: UINavigationController, animationControllerFor _: UINavigationControllerOperation,
from _: UIViewController, to _: UIViewController) -> UIViewControllerAnimatedTransitioning?
がtransitionクラスを返すように実装します。