CAShapeLayer动画颜色问题

时间:2014-09-02 18:12:06

标签: ios objective-c calayer cashapelayer

我使用以下代码绘制图表:

- (void) drawCircleGraphWithPercentage:(CGFloat)percentage
{


    self.circle = [[CAShapeLayer alloc] init];
    self.circle.strokeColor = [UIColor whiteColor].CGColor;
    self.circle.backgroundColor = [AESColorUtilities mdvdYellow].CGColor;

    self.circle.lineWidth = 30.0;

    // Make a circular shape
    self.circle.path = self.circlePath.CGPath;


    // Add to parent layer
    [self.contentView.layer addSublayer:self.circle];
    [self.contentView bringSubviewToFront:self.percentageLabel];

    // Configure animation
    CABasicAnimation* drawAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
    drawAnimation.duration            = 1.0; // "animate over 10 seconds or so.."
    drawAnimation.repeatCount         = 1.0;  // Animate only once..

    // Animate from no part of the stroke being drawn to the entire stroke being drawn
    drawAnimation.fromValue = [NSNumber numberWithFloat:0.0f];
    drawAnimation.toValue   = [NSNumber numberWithFloat:1.0f];

    // Experiment with timing to get the appearence to look the way you want
    drawAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];

    // Add the animation to the circle
    [self.circle addAnimation:drawAnimation forKey:@"drawCircleAnimation"];
}

我遇到的问题是图层中有一个黑色的形状导致颜色关闭:

enter image description here

我怎样才能让背景全是黄色的“mdvdYellow”而背后没有黑色?

提前谢谢。

1 个答案:

答案 0 :(得分:2)

您需要从形状图层中删除fillColor,因为默认设置为不透明黑色。

  

fillColor设置为nil会导致无法呈现填充。

self.circle.fillColor = nil;