核心动画

  //1.沿路径移动的动画

    CAKeyframeAnimation *movieAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];

    movieAnimation.duration = 3;

    movieAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];

    

    //定义一条线条路径,不是绘制

    CGMutablePathRef path = CGPathCreateMutable();

    CGPathMoveToPoint(path, NULL, 0, 0);

    CGPathAddQuadCurveToPoint(path, NULL, 160, 300,320, 0);


    movieAnimation.path = path;

    

    [_subView.layer addAnimation:movieAnimation forKey:NULL];

    

    

    //2.旋转动画

    CAKeyframeAnimation *rotationAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"];

    rotationAnimation.duration = 2;

    rotationAnimation.values = @[

                                 [NSNumber numberWithFloat:0],

                                 [NSNumber numberWithFloat:M_PI/4],

                                 [NSNumber numberWithFloat:M_PI],

                                 ];

    rotationAnimation.keyTimes = @[

                                   @0,

                                   @0.1,

                                   @0.9

                                   ];

    [_subView.layer addAnimation:rotationAnimation forKey:NULL];

    

    //3.放大动画

    

    CAKeyframeAnimation *transformAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];

    transformAnimation.duration = 2;

    

    CATransform3D transform0 = CATransform3DMakeScale(1, 1, 1);

    CATransform3D transform1 = CATransform3DMakeScale(2, 2, 2);

    CATransform3D transform2 = CATransform3DMakeScale(3, 3, 3);

    

    NSValue *v0 = [NSValue valueWithCATransform3D:transform0];

    NSValue *v1 = [NSValue valueWithCATransform3D:transform1];

    NSValue *v2 = [NSValue valueWithCATransform3D:transform2];

    

    transformAnimation.values = @[

                                         v0,v1,v2

                                         ];

    transformAnimation.keyTimes = @[@0,@0.5,@1.5];

    [_subView.layer addAnimation:transformAnimation forKey:NULL];



    //4.CABasicAnimation 类的使用

    CABasicAnimation *basicAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];

    basicAnimation.duration = 2;

    basicAnimation.fromValue = @0;

    basicAnimation.toValue = @1;

    

    [_subView.layer addAnimation:basicAnimation forKey:NULL];

    

    //5.动画组对象

    CAAnimationGroup *animationGroup = [CAAnimationGroup animation];

    animationGroup.animations = @[movieAnimation,basicAnimation];

    animationGroup.duration = 3;

    //重复的次数

    animationGroup.repeatCount = 1000;

    

    [_subView.layer addAnimation:animationGroup forKey:NULL];


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值