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

本文介绍如何在iOS应用中实现自定义的Modal视图动画效果。通过设置modalPresentationStyle为.custom,并配置transitioningDelegate,可以实现平滑过渡的动画。此外,还详细介绍了自定义动画类ZoomAnimator的实现。

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

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

589133-20170108212224550-1228326025.gif

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

1 - 设置modalPresentationStyle

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

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

589133-20170108134038284-1095487280.png

2 - 设置transitioningDelegate

我们还需要设置

    nav.modalPresentationStyle = .custom
    nav.transitioningDelegate = self
    

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

extension ZoomAnimator : UIViewControllerTransitioningDelegate{
    
}


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

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

589133-20170108155415097-1652756073.gif

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

转载于:https://www.cnblogs.com/fengtengfei/p/6262863.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值