【iOS系列】-自定义Modar动画

【iOS系列】-自定义Modar动画.md

我们需要做的最终的modar动画的效果是这样的,

就是点击cell,cell发生位移,慢慢的到第二个界面上的。为了做出这样的动画效果,我们需要以下的知识。

1 - 设置modalPresentationStyle

我们可以通过下图看到不设置modalPresentationStyle的时候,modar以前也即首页已经消失了,

而当我们设置了nav.modalPresentationStyle = .custom后,可以看到以前的界面没有被销毁,所以这时我们只需要设置好动画就好了

2 - 设置transitioningDelegate

我们还需要设置

	nav.modalPresentationStyle = .custom
	nav.transitioningDelegate = self

这样我们才可以进行自定义的动画,但是为了动画效果的封装,也为了减少控制器无关代码逻辑的冗余,我又写了一个动画类,让它来实现的代理方法

extension ZoomAnimator : UIViewControllerTransitioningDelegate{
    
}


//这样我们控制器中的代理就需要这样设置了:
nav.modalPresentationStyle = .custom
nav.transitioningDelegate = zoomAnimator
3 - 实现自定义动画协议类:ZoomAnimator

下图为我们简单的设置动画,

但是要想做到文章开头的效果,需要知道,点击的cell时的frame,以及放大后的frame,以及点击后的frame

原文地址:https://www.cnblogs.com/fengtengfei/p/6262863.html