网上自定义Controller转场相关基本知识的教程有很多,这里就不一一介绍了,大家自行Google。这里解释下这个动画的思路:
-
modal的时候,利用VC2的view.layer.anchorPoint (锚点) 绕其作正圆弧动画到VC1.view的位置。
值得注意的是一个view的anchorPoint设置必须在view的frame设置之前,否则会出现意想不到的情况,因此设置一个控制器view的anchorPoint得在loadView方法里面。
-
dismiss的时候给VC2.view添加一个手势,通过判断手势移动的距离计算view的移动,当手势停下的时候根据view.transform这个结构体里的某个参数(原理上任意参数都可以)判断view是回到原来位置还是掉下去。并且在自定义的dismissTransition里面判断再次判断这个参数来决定往左还是往右掉下去。
核心代码
网友评论