iOS 自定义Present转场动画如Push/Pop

本文介绍了一种无需依赖UINavigationController即可实现视图控制器Push和Pop动画效果的方法。通过WHPopAnimation库,可以轻松为视图控制器添加平滑的过渡动画,并支持边缘返回手势。适用于需要自定义导航动画的iOS应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景

项目中遇见一个场景,VC没有UINavigationController,但是需要PushPop的动画效果。 一开始使用了MZFormSheetPresentationViewController来实现Push效果,但是却没有Pop的边缘返回手势。本着求Github不如求己的原则,手撸了一个库出来,WHPopAnimation

Push/Pop转场效果及实现
  1. Push转场效果

    • view.frame从右屏外平移到屏幕正中
    • VC透明度从1.0变成0.5
    • VC向左平移110
    • 时长0.3s
  2. Pop转场效果

    • view.frame从屏幕正中平移到右屏外
    • VC透明度从0.5变成1.0
    • VC向右平移110
    • 时长0.4s
    • VCself.view需要添加UIScreenEdgePanGestureRecognizer边缘手势,平移超过屏幕中线则dismiss(Pop),反之回弹回去。
  3. 实现:<UIViewControllerAnimatedTransitioning>协议UIPercentDrivenInteractiveTransition手势过渡管理对象

WHPopAnimation 接入说明

无需管理<UIViewControllerAnimatedTransitioning>协议UIPercentDrivenInteractiveTransition手势过渡管理对象。 AVcBVc弹出来(Present出来),只需要AVc继承WHPopViewControllerPresent调用代码也和之前一样(WHPopViewController中重写该方法)。

- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion 
复制代码

Ps.假如你同一个VC既需要Push的转场效果,也需要Present的转场效果,你可以修改上面的方法,增加一个BOOL isPushAnimation的参数。

Github链接:

github.com/Balzac64672…

######觉得不错就点个赞吧??

转载于:https://juejin.im/post/5a964f656fb9a06356314bb6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值