我需要使用类似 HUD 的饼图动画来为圆形进度表的填充设置动画。我找到了如何使用 Core Animation 以纯色为路径设置动画的示例。不同之处在于我需要填充是图像蒙版(请参阅链接),而不是纯色。
有人可以提供有关如何使用 Core Animation 或其他任何东西来解决此问题的建议吗?
我需要使用类似 HUD 的饼图动画来为圆形进度表的填充设置动画。我找到了如何使用 Core Animation 以纯色为路径设置动画的示例。不同之处在于我需要填充是图像蒙版(请参阅链接),而不是纯色。
有人可以提供有关如何使用 Core Animation 或其他任何东西来解决此问题的建议吗?
我的魔术数字示例(为了更好地理解):
CAShapeLayer *circle = [CAShapeLayer layer];
circle.path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(29, 29) radius:27 startAngle:-M_PI_2 endAngle:2 * M_PI - M_PI_2 clockwise:YES].CGPath;
circle.fillColor = [UIColor clearColor].CGColor;
circle.strokeColor = [UIColor greenColor].CGColor;
circle.lineWidth = 4;
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
animation.duration = 10;
animation.removedOnCompletion = NO;
animation.fromValue = @(0);
animation.toValue = @(1);
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
[circle addAnimation:animation forKey:@"drawCircleAnimation"];
[imageCircle.layer.sublayers makeObjectsPerformSelector:@selector(removeFromSuperlayer)];
[imageCircle.layer addSublayer:circle];
imageCircle - 带有自定义“图像掩码”的 UIImageView。
这是循环进度视图的基本教程:
http://iosdevtricks.blogspot.com/2013/06/custom-circular-progress-view-for-ios.html
您将需要进行一些额外的调整: