iOS CACoreAnimation :CAKeyframeAnimation

本文深入探讨了Core Animation中的四种动画类型:CABasicAnimation、CAKeyframeAnimation、CAAnimationGroup及CATransition,通过实例展示了如何使用这些动画实现复杂的视觉效果。

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

1.CABasicAnimation

通过设定起始点,终点,时间,动画会沿着你这设定点进行移动。可以看做特殊的CAKeyFrameAnimation


2.CAKeyframeAnimation

Keyframe顾名思义就是关键点的frame,你可以通过设定CALayer的始点、中间关键点、终点的frame,时间,动画会沿你设定的轨迹进行移动


3.CAAnimationGroup

Group也就是组合的意思,就是把对这个Layer的所有动画都组合起来。PS:一个layer设定了很多动画,他们都会同时执行,如何按顺序执行我到时候再讲。


4.CATransition

这个就是苹果帮开发者封装好的一些动画,


 [self.button1 setImage:[UIImage imageNamed:(i%2==0?@"2":@"1")] forState:UIControlStateNormal];

    

    

    self.image1.layer.contents = (id)[UIImage imageNamed:(i%2==0?@"2":@"1")].CGImage;

    CAKeyframeAnimation *k = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"];

    k.values = @[@(1.0),@(1.5),@(2.0)];

    k.keyTimes = @[@(0.0),@(0.5),@(0.8),@(1.0)];

    k.calculationMode = kCAMediaTimingFunctionEaseInEaseOut;


    i++;

    [self.button1.layer addAnimation:k forKey:@"SHOW"];

    [self.image1.layer addAnimation:k forKey:@"SHOW"];


    //移动帧动画

    UIView *redView=[[UIView alloc]initWithFrame:CGRectMake(10102020)];

    redView.backgroundColor=[UIColor redColor];

    

    [self.view addSubview:redView];

    

    CAKeyframeAnimation *ani=[CAKeyframeAnimation animation];

    //初始化路径

    CGMutablePathRef aPath=CGPathCreateMutable();

    //动画起始点

    CGPathMoveToPoint(aPath, nil2020);

    CGPathAddCurveToPoint(aPath, nil,

                          16030,//控制点

                          220220,//控制点

                          240380);//控制点

    

    ani.path=aPath;

    ani.duration=10;

    //设置为渐出

    ani.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];

    //自动旋转方向

    ani.rotationMode=@"auto";

    

    [redView.layer addAnimation:ani forKey:@"position"];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值