美文网首页
Controller间的转场动画

Controller间的转场动画

作者: sovran | 来源:发表于2018-07-03 20:36 被阅读0次

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用来控制交互动画的。

相关文章

网友评论

      本文标题:Controller间的转场动画

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