Interaction Transition
为了自定义交互式的过渡动画,UIViewControllerTransitioningDelegate
对象必须实现对应的协议方法,interactionControllerForPresentation(_:)
和interactionControllerForDismissal(_:)
。交互控制根据用户的手势输入来更新自定义的过渡动画,
而自定的过度动画是实现了UIViewControllerAnimatedTransitioning
协议的对象,关于该协议这里就不再说明了。
Apple提供了一个交互式控制器的具体实现UIPercentDrivenInteractiveTransition
,在大多数情况下,我们的交互式控制器只要继承它,然后加入自己的手势交互就好了。
在我们的手势交互逻辑中,根据用户的输入,我们利用以下几个方法来实时更新动画:
1 | func updateInteractiveTransition(_ percentComplete: CGFloat) |
一个简单的例子如下:
1 | import UIKit |
在定义了这个Animator之后,只要在另外一个对象(实现了UIViewControllerTransitioningDelegate协议)的interactionControllerForDismissal(_:)
返回这个类的实例即可。
1 | func interactionControllerForDismissal(animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? { |