动画Animation

//    初始化

    CALayer *kkLayer = [[CALayer alloc] init];

    kkLayer.backgroundColor = [[UIColor grayColor] CGColor];

    kkLayer.frame = CGRectMake(10, 10, 40, 40);

    

//    设定它的frame

    kkLayer.cornerRadius = 5;

    [self.view.layer addSublayer:kkLayer];

    

//    移动kklayerposition

    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];

    animation.fromValue = [NSValue valueWithCGPoint:kkLayer.position];

    CGPoint toPoint = kkLayer.position;

    toPoint.x += 180;

    animation.toValue = [NSValue valueWithCGPoint:toPoint];

    

//    x轴进行旋转

    CABasicAnimation *retateAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.x"];

    retateAnimation.fromValue = [NSNumber numberWithFloat:0.0];

    retateAnimation.toValue = [NSNumber numberWithFloat:6.0 * M_PI];

    

//kklayer进行放大缩小

    CABasicAnimation *scaoleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale.x"];

    scaoleAnimation.duration = 3;

    scaoleAnimation.autoreverses = YES;

    scaoleAnimation.fromValue = [NSNumber numberWithFloat:1.0];

    scaoleAnimation.toValue = [NSNumber numberWithFloat:2.5];

    scaoleAnimation.fillMode = kCAFillModeForwards;

    

//    把上面的动画组合起来

    CAAnimationGroup *group = [CAAnimationGroup animation];

    group.autoreverses = YES;

    

//    完成后反向完成

    group.duration = 3.0;

    group.animations = @[animation,retateAnimation,scaoleAnimation];

    [kkLayer addAnimation:group forKey:@"kkLayerMove"];

    

//    ps:动画结束以后,他会返回自己原来的frame,如果不想到原来frame我们需要设定

    group.fillMode = kCAFillModeForwards;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值