iOS核心动画keypath

本文详细介绍了iOS核心动画中的关键路径属性,包括旋转(transform.rotation.x, .rotation.y, .rotation.z)和平移(position)以及缩放(transform.scale.x, .scale.y, .scale.z)动画。此外,还提及了透明度(opacity)和线条颜色变化(strokeEnd, strokeStart)动画效果。" 52767655,5714448,Eclipse SVN下载项目转Maven步骤,"['eclipse', 'svn', 'maven', 'Java项目转换', 'maven项目构建']

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

transform.rotation:旋转动画。
transform.rotation.x:按x轴旋转动画。
transform.rotation.y:按y轴旋转动画。
transform.rotation.z:按z轴旋转动画。
transform.scale:按比例放大缩小动画。
transform.scale.x:在x轴按比例放大缩小动画。
transform.scale.y:在y轴按比例放大缩小动画。
transform.scale.z:在z轴按比例放大缩小动画。
position:移动位置动画。
opacity:透明度动画

strokeEnd :颜色从无到有

strokeStart :颜色从有到无


   // Do any additional setup after loading the view, typically from a nib.
    // (360°- 30°) ->(180°+30°) 逆时针的圆弧 CD圆弧
    UIBezierPath *path1 = [UIBezierPath bezierPathWithArcCenter:CGPointMake(self.view.center.x,self.view.center.y)
                                                         radius:100
                                                     startAngle:2 * M_PI - DEGREES_TO_RADIANS(30)
                                                       endAngle:M_PI + DEGREES_TO_RADIANS(30)
                                                      clockwise:NO];

    // (3/2π- 60°) ->(-1/2π -60°) 逆时针的圆 DD′圆
    UIBezierPath *path2 = [UIBezierPath bezierPathWithArcCenter:CGPointMake(self.view.center.x,self.view.center.y)
                                                         radius:100
                                                     startAngle:M_PI *3/2 - (M_PI_2 - DEGREES_TO_RADIANS(30))
                                                       endAngle:-M_PI_2 - (M_PI_2 -DEGREES_TO_RADIANS(30))
                                                      clockwise:NO];

//    [path1 appendPath:path2];

    
    CAShapeLayer *layer = [CAShapeLayer layer];
    layer.path = path1.CGPath;
    layer.strokeColor = [UIColor redColor].CGColor;
    layer.fillColor = [UIColor clearColor].CGColor;
    layer.lineWidth = 5;
    
    CAShapeLayer *layer1 = [CAShapeLayer layer];
    layer1.path = path2.CGPath;
    layer1.strokeColor = [UIColor yellowColor].CGColor;
    layer1.fillColor = [UIColor clearColor].CGColor;
    layer1.lineWidth = 5;
    
    
    //方案1
    CAKeyframeAnimation *startAnimation = [CAKeyframeAnimation animationWithKeyPath:@"strokeStart"];
    startAnimation.values = @[@0,@1];
    startAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
    startAnimation.duration = 2 ;
    startAnimation.repeatCount = 100;
    startAnimation.delegate = self;
    startAnimation.removedOnCompletion = 1;
    
    CAKeyframeAnimation *EndAnimation = [CAKeyframeAnimation animationWithKeyPath:@"strokeEnd"];
    EndAnimation.values = @[@0,@1];
    EndAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
    EndAnimation.duration = 2;
    EndAnimation.repeatCount = 100;
    EndAnimation.delegate = self;
    EndAnimation.removedOnCompletion = 1;


    CAAnimationGroup *animationGroup = [CAAnimationGroup animation];
    animationGroup.animations = [NSArray arrayWithObjects:startAnimation,nil];
    animationGroup.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
    animationGroup.duration = 3;
    animationGroup.repeatCount = 100;
    animationGroup.delegate = self;
    animationGroup.removedOnCompletion = 1;
    [animationGroup setValue:@"animationStep3" forKey:@"animationName"];
    
    [layer addAnimation:startAnimation forKey:nil];
    [layer1 addAnimation:EndAnimation forKey:nil];
    
    [self.view.layer addSublayer:layer];
    [self.view.layer addSublayer:layer1];


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值