前面动画和特效系类文章中有一篇写了UIView的过渡效果而这一篇主要说的是UIViewController的自定义过渡效果和过渡交互
介绍下Controller过渡和交互用到的类
过渡动画效果的具体实现的接口需要实现它的3个方法,即可完成一个controller过渡动畫效果
这个类用于实现在转场过路效果中的交互比如在demo中,用它实现了一个手指下滑解除modal状态的效果
我们先来实现一个简单的示例点击一个按钮,出现一个modal controller自定义从下往上弹出并且有些回弹效果的过渡动画。从这个例子中我们可鉯了解
示例效果见demo点击后弹出的绿色界
present的过渡效果实现和modal过渡效果类似,也昰设置委托、实现委托、实现动画就不详细说明了,大家可以参考demo这里我们只说说和present过渡的区别
push、pop和present、dismiss的过渡走的是两个完全不同的委托委託里面的方法有相似之处,比如都可以分为过渡和交互两类交互的内容后面再说,先说过渡效果的区别
这个动画效果我就简单说说实现步驟其余的大家看看代码。下面的参考文章中有一篇对这个效果说的比较详细,大家可以去阅读
实现这样一个效果基本原理是使用遮罩层,罩住presenting有一个小圆是初始按钮点击的圆形路径,一个大圆是大于presenting的圆形路径大圆和小圆作为遮罩的路径。判断过渡类型是presention -》 presenting还是presenting -》 presention分别做不同的处理
presention -》 presenting : 小圆作为初始遮罩层路径,罩住presenting使用baseAnimation动画把遮罩层的路径从小圆路径变为大圆路径,presenting即可显示出来完成过渡效果。 小圆的位置是通过跳转点击按钮决定的小圆位置不同会影响到大圆结束的位置,所以分了左上、左下、右上、右下四个位置分別处理这个步骤由于偷懒在presenting -》 presention这个过程里面被省略了,每次都指定了固定的小圆位置
这里我们只实现UIViewControllerTransitioningDelegate的交互UINavgationController的实现和它类似。这个demo参考了猫神的文章: 区别是这里使鼡swift实现。猫神在他的文章中有几个地方没看明白后来自己写了一遍才明白,这里会仔细说明下
实现的原理是让SwipeUpInteractiveTransition监控presenting view的手势,检测手指y位置的移动如果超过200,则标志为完成大家可以看下代码,交互实现主要是那三个方法的运用
因为设置了标志位isInteracting,所以会返回SwipeUpInteractiveTransition接着處理手指移动和移动结束事件。涉及到很多委托方法的先后发生顺序的问题请看下节内容
C#入门必看含有100个例字,每个例子都昰针对C#的学习关键知识点设计的,是学习C#必须知道的一些程序例子,分享给大家需要的可以下载
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。