swift实现简易的侧滑转场

一.实现效果如下:

swift实现简易的侧滑转场_第1张图片

二.如何使用:

    将"SideTransitionAnimator"类文件拖入工程中,在触发侧滑打开的方法中添加如下代码:

swift实现简易的侧滑转场_第2张图片


swift实现简易的侧滑转场_第3张图片

三.实现原理:

        设置rightVC的模态样式为自定义,并遵循转场协议代理.通过设置自定义present和dismiss时的nimatedTransitioning来打开和关闭侧滑动画.

        UIKit 在presenting或者dismissing时calls下面这个方法:

func animateTransition(using transitionContext: UIViewControllerContextTransitioning). 所以要配置自定义的转场动画也应在这里设置.present和dismiss的转场原理都很简单:

    1.在presenting时,获取到转场上下文的containerView, 以及toViewController ;

     2.设置toViewController的初始位置,并将视图添加到容器视图上.

     3.通过UIView的动画方法设置presenting结束时toViewController的视图位置.并将容器视图设置成蒙版的颜色.动画结束时执行: transitionContext.completeTransition(true).

    4.创建一个"TapGestureRecognizerTarget"的类,作为dismiss的回调执行者. 它继承自CALayer.目的不是视图的渲染或者显示.而是通过添加给containerView的layer给自身一个强引用,以便在presenting结束后不被释放.那么在containerView的tap手势执行时才能dismiss掉toViewController.

Demo下载地址:https://github.com/moonCai/SimpleSideAnimator

你可能感兴趣的:(swift实现简易的侧滑转场)