几句代码快速集成自定义转场效果+ 全手势驱动

476 查看

写在前面

在简书写完第一篇的自定义转场文章后,已经很久没有碰过转场了,毕竟在公司,功能实现才是最重要的,这些转场的动效,只能是点睛之笔,不太容易被重视,不过我的第一篇文章还是很多人的喜欢和讨论,很多人还提出些建议,非常感谢大家,这是我第一篇文章的地址自定义转场动画,里面包含了一些转场的基础知识,这篇文章我就不再讨论这些基础知识了。
为什么会有这第二篇文章,主要原因有如下几点:

1、能不能更简单?当我很久没有使用转场的时候,再次来使用它,感觉还是比较烦琐,有一大堆记不住的长长的代理方法,都要去copy,长长的代理方法也把控制器弄得有点乱,虽然苹果已经将整个过程充分解耦了,我在想,要是能简单的一两句话就能集成转场效果多好,或者通过继承和复写一两个方法就能轻松实现自己的转场效果,无需关注转场逻辑,只需关注动画逻辑

2、闪烁和生硬?在第一篇文章中有人提到的部分的bug,比如小圆点扩散效果,如果手势在中途取消,不会有取消动画,非常生硬,而且会有闪烁的bug,我在想能不能解决这两个问题,强迫症接受不了o(╯□╰)o,我现在找到了一个比较好的方式来解决问题,原理和对比图会在后面给出

3、能不能多添加一些效果?所以我把自己写的效果封装,再参照网络一些效果,总过添加了将近20个效果

4、手势万岁!任何效果我都想能够手势驱动

效果图(图比较多,请手机用户慎重,可下载demo真机运行效果更好)

截图中,右上角的switch开关代表push和present,所有效果都支持手势,我就不一一演示了

1、CircleSpreadTransition 小圆点扩散

CircleSpreadTransition.gif

2、MagicMoveTransition 神奇移动

 

MagicMoveTransition1.gif

MagicMoveTransition2.gif

3、XWDrawerAnimator 抽屉效果,仿照QQ和淘宝

 

XWDrawerAnimator1.gif

XWDrawerAnimator2.gif

4、XWCoolAnimator 自定义一些效果

 

XWCoolAnimator2.gif

XWCoolAnimator1.gif

XWCoolAnimator3.gif

XWCoolAnimator4.gif

XWCoolAnimator5.gif

XWCoolAnimator6.gif

XWCoolAnimator7.gif

5、XWFilterAnimator 通过CIFilter滤镜自定义一些效果,请在真机上运行

XWFilterAnimator1.gif

XWFilterAnimator6.gif

XWFilterAnimator5.gif

XWFilterAnimator4.gif

XWFilterAnimator3.gif

XWFilterAnimator2.gif

XWFilterAnimator8.gif

XWFilterAnimator7.gif

如何使用

1、git地址:几句代码快速集成自定义转场效果+ 全手势驱动,clone后将整个XWTranstion文件夹导入工程

2、导入UINavigationController+XWTransition.h或者UIViewController+XWTransition.h两个分类

3、选择你需要的效果器进行根据初始化方法进行初始化,比如下面的小圆点扩散,初始化指定开始圆心和半径

4、通过初始化的效果器转场,根据分类提供的方法进行push或者present,就完成了!

手势驱动

1、在UIViewController+XWTransition.h分类中提供了两个方法,用来注册手势驱动,在viewDidLoad的时候调用注册手势就可以了,详见demo,注意避免循环引用,手势支持边缘属性

2、事例代码

关于神奇移动效果

1、在UIViewController+XWTransition.h分类中提供了三个关于神奇移动的方法,你需要在转场前和转场后的控制器中分别注册神奇移动前后的视图(用来告知神奇移动前后的frame),然后通过神奇移动效果器就可以触发神奇移动转场了