iOS核心动画keypath

来源:互联网 发布:上海华测导航待遇知乎 编辑:程序博客网 时间:2024/05/18 06:41

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];


0 0
原创粉丝点击