iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 如何在动画期间更改CALayer的颜色?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望图层从绿色开始,然后慢慢变为黄色,橙色,最后是红色.我该怎么做呢?

CAShapeLayer *layer = [CAShapeLayer layer];
[layer setstrokeColor:[UIColor greenColor].CGColor];
[layer setLineWidth:5.0f];
[layer setFillColor:[UIColor clearColor].CGColor];

UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:button.bounds cornerRadius:10.0f];
layer.path = path.CGPath;

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
animation.fromValue = [NSnumber numberWithFloat:0.0f];
animation.toValue = [NSnumber numberWithFloat:1.0f];
animation.duration = 4.0f;

[layer addAnimation:animation forKey:@"mystroke"];
[button.layer addSublayer:layer];

解决方法

我刚刚为你写了这段代码.我使用了CAKeyframeAnimation,因为它允许多个toValues,因为它允许更多地控制动画.

//Set up layer and add it to view
CALayer *layer = [CALayer layer];
layer.frame = self.view.bounds;
[self.view.layer addSublayer:layer];

//Create animation
CAKeyframeAnimation *colorsAnimation = [CAKeyframeAnimation animationWithKeyPath:@"@R_801_11442@kgroundColor"];
colorsAnimation.values = [NSArray arrayWithObjects: (id)[UIColor greenColor].CGColor,(id)[UIColor yellowColor].CGColor,(id)[UIColor orangeColor].CGColor,(id)[UIColor redColor].CGColor,nil];
colorsAnimation.keyTimes = [NSArray arrayWithObjects:[NSnumber numberWithFloat:0.25],[NSnumber numberWithFloat:0.5],[NSnumber numberWithFloat:0.75],[NSnumber numberWithFloat:1.0],nil];
colorsAnimation.calculationMode = kCAAnimationPaced;
colorsAnimation.removedOnCompletion = NO;
colorsAnimation.fillmode = kCAFillmodeForWARDs;
colorsAnimation.duration = 3.0f;

//Add animation
[layer addAnimation:colorsAnimation forKey:nil];

大佬总结

以上是大佬教程为你收集整理的ios – 如何在动画期间更改CALayer的颜色?全部内容,希望文章能够帮你解决ios – 如何在动画期间更改CALayer的颜色?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。