美文网首页
iOS转场动画

iOS转场动画

作者: andrewJN | 来源:发表于2017-09-08 11:06 被阅读83次

iOS 7 自定义视图控制器转场的 API 基本上都是以协议的方式提供的,这也使其可以非常灵活的使用,因为你可以很简单地将它们插入到你的类中。最主要的五个组件如下:

动画控制器 (Animation Controllers)遵从UIViewControllerAnimatedTransitioning协议,并且负责实际执行动画。

交互控制器 (Interaction Controllers)通过遵从UIViewControllerInteractiveTransitioning协议来控制可交互式的转场。

转场代理 (Transitioning Delegates)根据不同的转场类型方便的提供需要的动画控制器和交互控制器。

转场上下文 (Transitioning Contexts)定义了转场时需要的元数据,比如在转场过程中所参与的视图控制器和视图的相关属性。 转场上下文对象遵从UIViewControllerContextTransitioning协议,并且这是由系统负责生成和提供的

转场协调器(Transition Coordinators)可以在运行转场动画时,并行的运行其他动画。 转场协调器遵从UIViewControllerTransitionCoordinator协议。

这里出现好多的来的,而且名字都很像。使用的时候需要注意。

UIViewControllerTransitioningDelegate//可在present的时候使用

UIViewControllerAnimatedTransitioning//包含两个必须实现的代理方法

一个带返回值,控制动画时间,另一个负责执行实际动画

UIViewControllerInteractiveTransitioning

这个代理里面包含一个重要的方法,当利用默认转场动画时会执行这个代理方法,我们可以在这里获取Controller(fromeVC,toVC),常用一些手势返回的地方。

//动画上下文,做一些动画的控制,代理方法的参数内会带遵循这个协议的对象

UIViewControllerContextTransitioning

//动画我们一般封装成一个类去执行,这个类需要遵守UIViewControllerAnimatedTransitioning,UIViewControllerInteractiveTransitioning协议,在present的时候需要实现,UIViewControllerTransitioningDelegate的方法返回一个我们创建执行动画的类

present的时候会先调用这里,确定那个累操作动画再执行上面图片中的代理方法。

最后github项目地址Animation

相关文章

网友评论

      本文标题:iOS转场动画

      本文链接:https://www.haomeiwen.com/subject/yhhgjxtx.html