美文网首页iOS 自定义转场iOS进阶
iOS添加自定义转场动画和交互动画(二)

iOS添加自定义转场动画和交互动画(二)

作者: FindCrt | 来源:发表于2016-04-10 11:34 被阅读286次

    了解了转场动画的流程后,我就想封装下,然后可以一句代码搞定转场动画。因为这个在需求上就是一句话,比如A要push到B了,那么想这个转场就用B逐渐方法然后把A遮盖的效果。我不要再去实现什么navigationController的委托方法、还要又去实现一边动画效果。

    研究了下,基本达到了需求,这是地址

    1. 转场动画使用
    项目

    项目本身是个例子,实际封装部分是图里的红框部分,animations路径下是各种动画类型。

    (1)首先指定委托,如果你想要修改navigationController的转场效果:

    //注意weak
    weak var transitionDelegate :TFTransitionAnimationDelegate! = TFTransitionAnimationDelegate.sharedInstance
    
    self.navigationController?.delegate = transitionDelegate
    

    想要present\dismiss的效果:

    let nextVC = NextViewController()
    nextVC.transitioningDelegate = transitionDelegate
    

    即用TFTransitionAnimationDelegate承担了提供转场动画,和控制交互动画的责任。

    (2)指定需要的动画效果:

    //指定自定义的推出和返回转场动画
            transitionDelegate.dismissionTransition = TFZoomInTransitionAnimator(duration: 1, originFrame: imageView.frame)
            transitionDelegate.presentationTransition = TFSwipeLeftTransitionAnimator(duration: 0.35)
    

    动画效果是使用TFTransitionAnimator的子类,每个子类对应不同的动画效果。

    (3)然后...然后没有了,就这么简单!

    在push的时候,动画就是指定的动画了。

    2. 交互动画使用

    以present为例,比如你想向左滑动present到nextVC(上一篇里有gif效果图):

    override func viewDidAppear(animated: Bool) {
            let nextVC = NextViewController()
            nextVC.imageView.image = self.imageView.image
            nextVC.transitioningDelegate = transitionDelegate
            
            //开启交互动画
            self.openIntactiveTarnsitionWith(.SwipeLeft, presentType: .ModalPresent, toViewController: nextVC)
        }
    

    一句代码搞定,3个参数:

    • interactiveType 交互方式,即手势
    • presentType 转场类型,push\pop等
    • toViewController 转场的目的界面

    即告诉TFTransitionAnimationDelegate:以什么手势触发,然后以什么转场方式,到达什么界面。不过,pop和dismiss时候就不用指定toViewController了。

    需要注意的是:interactiveType会覆盖,比如我添加了向右滑动来push,又添加向右滑动dismiss,前面的push就无效了。但是向右和向下是不会冲突的。

    相册浏览大图就可以用zoomOut动画,类似豆瓣小事的关闭详情界面就是swipeDown动画+swipeDown手势,在触控板上左划、右划可以切换Xcode的内容页面,这种效果可以swipeLeft手势来push+swipeRight手势pop来实现等。

    相关文章

      网友评论

        本文标题:iOS添加自定义转场动画和交互动画(二)

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