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

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

  • 协议UIViewControllerInteractiveTransitioning用来控制交互动画的。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容