【iOS】一个取巧的弹出式动画实现以及后续的iOS动画学习(第一部分:基于CALayer的Core Animation框架)

本文介绍了在iOS开发中如何快速实现一个图案从小到大的弹出动画,以及三张图片的循环播放。文章通过UIImageView实现动画效果,并探讨了基于CALayer的Core Animation框架,包括基本动画、关键帧动画、动画组和转场动画的概念。同时,讨论了UIView和CALayer的关系,为后续深入学习iOS动画打下基础。

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

二月中上班,开始开年需求,现在到三月初算是基本完成,也在测试之前趁着有那么一点空闲时间和精力记录下一些开发中遇到的问题。

这次记录下的是一个简单的动画效果实现。当时时间比较紧,用了一个取巧的动画实现(实际原因是没看懂CA动画怎么用),因此在这里记录下来,同时研究一下CA动画。


需求分析

(不知道怎么设置成循环,似乎只能刷新看一次)

这个动画效果分为两部分,要求其实有三:

1.图案从小到大的弹出(从0-X秒)

2.总共三张图片的循环播放(从0-N秒,X<N)

3.动画播放一定时间后消失(N秒后消失)


取巧实现

先上我临时想出的方法

1.轮播图片的动画效果其实UIImageView就能实现

UIImageView *imageView = [[UIImageView alloc]initWithFrame:
    CGRectMake((rewardFinsihView.frame.size.width)/2, (rewardFinsihView.frame.size.height)/2, 0.f, 0.f)];
imageView.backgroundColor = [UIColor clearColor];
imageView.animationImages=imageArray;//imageArray就是一个包含UIImage数据的数组
imageView.animationDuration=0.4;
imageView.animationRepeatCount=5;
[rewardFinsihView addSubview:imageView];//rewardFinsihView就是背景view
[imageView startAnimating];

参数都很好理解:

animationImages就是要轮播的图片集

animationDuration就是轮播一次的时间(以秒为单位)

animationRepeatCount就是轮播次数

startAnimating开始动画

2.如果第一步实现决定使用UIImageView,那么弹出效果实际上就是一个UIImageView从小变大。

注意第一步设置imageView的frame.size为0,frame.origin为背景中心

接下来的代码就是

[UIView animateWithDuration:0.3 
    animati
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值