用UIPresentation来转场动画

之前写过一篇文章用UIViewControllerTransitioning来自定义UIViewController转场动画,这里记录一下iOS8的工具UIPresentation来实现转场动画

参考教程http://kittenyang.com/uipresentation/

回忆一下之前写的使用iOS7的UIViewControllerTransitioning协议,实现转场动画的内容,核心的实现方式是UIViewControllerTransitioningDelegate代理,其中最重要的方法是转场的形式,这里面贴一个最简单的转场方式,自定义一个Present的转场

很好,这是纯粹的使用animateTransition就可以实现的转场动画,然后在present的ViewController里面调用这个方法就好了,就是使用自定义的转场方式,这没什么说的

如果这里还是看得一头雾水,那么就要过一遍自定义转场,下面要让UIPresentation加入进来了,这里强调一下,UIPresentation并不能替代UIViewControllerAnimatedTransitioning,而是要伴随着Transitioning使用的,一般处理的是除了主要转场的ViewController以外的动画,理解为边边角角的”动画补丁”

直接这么说可能不太好理解,首先把前面写的animateTransition这个方法里的这句话去掉

然后再运行就会发现Present动画不起作用了,因为toView并没有加入上下文之中,这时候写一个我们自己的UIPresentation,让toView在这里面添加到上下文去,同时添加一些别的动画

主要内容都在上面已经注释了,最关键的点还是可以看出来Presentation是伴随着Transition进行动画的,不是独立存在

使用方法是在presentedViewController里面重载协议方法

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注