Controller间的转场动画

Controller间的转场动画

很多App实现了跳转的动画, 稍微进行研究了一下,写个文章记录一下。
主要涉及几个类, 关系如下:

NavigationTransition.png

相关说明:

  • FromVC、ToVC为转换的两个controller, 两者可以通过UINavigationController的push、pop, 或者是present、dismiss,又或者是UITabbarController的tab切换,来实现。 这里主要说一下UINavigationController的push、pop。其他两种原理一样,只是实现的类不同罢了

  • 协议UINavigationControllerDelegate定义了几个接口, 针对UINavigationController的push、pop,主要要实现下面这个接口,返回一个实现了UIViewControllerAnimatedTransitioning协议的对象。


- (nullable id )navigationController:(UINavigationController *)navigationController                      animationControllerForOperation:(UINavigationControllerOperation)operation
                                                fromViewController:(UIViewController *)fromVC
                                                  toViewController:(UIViewController *)toVC                                               
  • 协议UIViewControllerAnimatedTransitioning包含两个方法:
//返回动画时长
- (NSTimeInterval)transitionDuration:(nullable id )transitionContext;

//在这个函数编写实现动画的代码,动画完成后调用transitionContext的completeTransition方法。
- (void)animateTransition:(id )transitionContext;

  • 协议UIViewControllerInteractiveTransitioning用来控制交互动画的。

你可能感兴趣的:(Controller间的转场动画)