gpt4 book ai didi

objective-c - 使用 CABasicAnimation 为 CAShapeLayer 的 strokeColor 设置动画

转载 作者:可可西里 更新时间:2023-11-01 17:10:02 31 4
gpt4 key购买 nike

使用 this previous 中的答案,我未能在 CAShapeLayer 上设置闪烁笔画的动画效果线程,经过多次搜索后,我找不到使用 CABasicAnimation 为笔画设置动画的其他示例。

我想要做的是让我的 CAShapeLayer 脉冲在两种颜色之间。将 CABasicAnimation 用于不透明度效果很好,但 [CABasicAnimation animationWithKeyPath:@"strokeColor"] 让我望而却步,我很感激任何关于如何成功实现的建议。

    CABasicAnimation *strokeAnim = [CABasicAnimation animationWithKeyPath:@"strokeColor"];
strokeAnim.fromValue = (id) [UIColor blackColor].CGColor;
strokeAnim.toValue = (id) [UIColor purpleColor].CGColor;
strokeAnim.duration = 1.0;
strokeAnim.repeatCount = 0.0;
strokeAnim.autoreverses = NO;
[shapeLayer addAnimation:strokeAnim forKey:@"animateStrokeColor"];

// CABasicAnimation *opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
// opacityAnimation.fromValue = [NSNumber numberWithFloat:0.0];
// opacityAnimation.toValue = [NSNumber numberWithFloat:1.0];
// opacityAnimation.duration = 1.0;
// opacityAnimation.repeatCount = 0.0;
// opacityAnimation.autoreverses = NO;
// [shapeLayer addAnimation:opacityAnimation forKey:@"animateOpacity"];

取消注释不透明度动画会导致预期的不透明度淡化。笔划动画不产生任何效果。隐式 strokeColor 更改按预期进行动画处理,但我想要记录确认 strokeColor 可以使用 CABasicAnimation 显式设置动画。

更新:具体问题是 shapeLayer.path 为 NULL。更正该问题已解决。

最佳答案

下面的代码非常适合我。 shapeLayer 描边路径的 lineWidth 是多少?这可能是问题所在吗?

- (void)viewDidLoad
{
[super viewDidLoad];

UIBezierPath * circle = [UIBezierPath bezierPathWithOvalInRect:self.view.bounds];

CAShapeLayer * shapeLayer = [CAShapeLayer layer];
shapeLayer.path = circle.CGPath;
shapeLayer.strokeColor =[UIColor blueColor].CGColor;
[shapeLayer setLineWidth:15.0];

[self.view.layer addSublayer:shapeLayer];

CABasicAnimation *strokeAnim = [CABasicAnimation animationWithKeyPath:@"strokeColor"];
strokeAnim.fromValue = (id) [UIColor redColor].CGColor;
strokeAnim.toValue = (id) [UIColor greenColor].CGColor;
strokeAnim.duration = 3.0;
strokeAnim.repeatCount = 0;
strokeAnim.autoreverses = YES;
[shapeLayer addAnimation:strokeAnim forKey:@"animateStrokeColor"];

}

让我知道它是否适合你...

关于objective-c - 使用 CABasicAnimation 为 CAShapeLayer 的 strokeColor 设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12122636/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com