美文网首页
转场动画

转场动画

作者: 也许________ | 来源:发表于2017-10-27 17:11 被阅读17次
    当你不想使用系统默认的界面跳转,这时你将需要转场动画,适宜的使用转场技术,将会使你的app锦上添花
    效果图
    push和pop present和dismiss 实战
    关于转场的使用,你需要了解的知识点

    用文字解释下
    在使用转场前,需要根据当前的场景来决定使用哪种转场(导航栏push或者模式化弹出),两种场景使用的转场方法不同
    ①导航栏push
    需要设置导航栏的代理 self.navigationController.delegate = xxx,对应的控制器(xxx)需要实现代理方法,在代理方法中返回实现动画的对象
    ②模式化
    需要被弹出的控制器实现转场代理 vc.transitioningDelegate = xxx,对应的控制器(xxx)需要实现代理方法,在代理方法中返回实现动画的对象
    PS:转场的动画需要写在遵守转场协议(UIViewControllerAnimatedTransitioning)的类中

    关于转场的动画,你需要知道的

    在代理方法中返回的执行动画的对象必须遵守转场动画协议(UIViewControllerAnimatedTransitioning)并且实现两个协议方法

    // 转场动画执行所需的时间
    func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
       return 0.8
    }
    
    // 动画执行的地方
    func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
        // 判断导航栏是push 还是 pop,执行对应的动画
        if self.animationType == .Push {
            // push动画方法
           pushAnimation(transitionContext)
         } else {
         popAnimation(transitionContext)
      }
    }
    

    上图中的containView是执行动画的容器,需要将执行动画的view添加到容器中
    transitionContext是上下文对象,可以从中获取转场过程中相关的视图或者控制器
    transitionContext.view(forKey: .to) 获取目标视图,也就是跳转后的视图
    transitionContext.view(forKey: .from)获取源视图,发起跳转的视图

    PS:demo2中,我写了足够多的注释帮助你理解代码,需要多写代码才能快速学会使用

    参考文章~~~~~~~
    大型同性交友网站gayhub~~~~~~

    相关文章

      网友评论

          本文标题:转场动画

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