浅谈iOS开发自定义缩放转场动画及遇到的坑

本文介绍了如何实现iOS应用中类似系统相册的图片浏览器动画效果,包括创建自定义transition对象,遵循UIViewControllerAnimatedTransitioning协议,以及在实际开发中遇到的视图控制器大小适配问题和解决方案。在适配大小屏手机时,发现present出的视图控制器大小未正确调整,通过手动设置frame解决了问题,但可能引发其他布局问题。最终通过删除xib并纯代码实现UI解决了该问题。
摘要由CSDN通过智能技术生成

最近项目有个做图片浏览器的需求,点击图片后要有类似系统相册的动画。

效果图:

在这里插入图123片描述

实现:

1.首先创建一个transition对象,继承自NSObject,遵守UIViewControllerAnimatedTransitioning协议。
根据我们的需求,需要提供4个接口,传入动画所需的图片、动画开始和结束的frame、区分present和dismiss的type。

@property (nonatomic,assign) TransitionAnimationStyle style;   
@property (nonatomic, strong) UIImage *transitionImage;   
@property (nonatomic, assign) CGRect transitionBeforeImgFrame;   
@property (nonatomic, assign) CGRect transitionAfterImgFrame;

2.实现UIViewControllerAnimatedTransitioning协议方法

//此方法返回动画持续时间
- (NSTimeInterval)transitionDuration:(nullable id <UIViewControllerContextTransitioning>)transitionContext;
//在此方法中写动画效果
- (void)animateTransition:(id <UIViewControllerContextTransitioning>)tran
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值