以下のリンクを参考にし、円グラフを作成してます。https://gist.github.com/glayash/38aa605f99a9666a925d
条件によってグラフの色を変えたいのですが、アニメーション中は変わりません。アニメーション時間に設定した時間が終わると、パッと変わります。一部コードを抜粋して以下に記しました。
ViewControllerによりparamが100以下のときグラフを赤くしようとしております。

ViewController.m

if( param < 100) {

    [_graph setfillColor:[UIColor redColor]];
} else {
    [_graph setfillColor:[UIColor blueColor]];
}

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"value"];

animation.duration = 5;
animation.repeatCount = 1;
animation.fromValue = [NSNumber numberWithFloat:0.0];
animation.toValue = [NSNumber numberWithFloat:per];

animation.fillMode = kCAFillModeForwards;
animation.removedOnCompletion = YES;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

[_graph addAnimation:animation forKey:@"key"];入力

AnimatableGraph.h

@property (nonatomic) UIColor *fillColor;

AnimatableGraph.m

@implementation SKCircleGraphLayer{

    CGFloat red,green,blue,alpha;

}    


-(void)drawInContext:(CGContextRef)ctx{


    fillColor getRed:&red green:&green blue:&blue alpha:&alpha];

    NSLog(@"%f",red); //アニメーション中は0となり終了後1となる。

    CGContextSaveGState(ctx);

    CGFloat x = self.bounds.origin.x;

    x += self.bounds.size.width/2;

    CGFloat y = self.bounds.origin.y;
    y += self.bounds.size.height/2;

    CGContextSetLineWidth(ctx, 0);

    CGMutablePathRef path = CGPathCreateMutable();

    CGPathAddArc(path, NULL, x, y, x-10, 0, M_PI*2, NO);
    CGContextAddPath(ctx, path);
    CGContextSetRGBFillColor(ctx,0.6, 0.6, 0.6,1.0); //gray

    CGContextSetLineWidth(ctx, 0);
    CGContextDrawPath(ctx, kCGPathFillStroke);

    // 3時の方向が0度なので補正
    double start = -45;

    double aDegree = _degree - (180 - start);

    CGMutablePathRef graph = CGPathCreateMutable();

    CGPathAddArc(graph, nil, x, y,x-10,(M_PI * 2.0 * (start - 180) / 360),(M_PI * 2.0) * (aDegree / 360.0), false);
    CGPathAddLineToPoint(graph, nil, x, y);
    CGContextAddPath(ctx, graph);
    CGContextSetRGBFillColor(ctx, red,green, blue,alpha);    

    CGContextDrawPath(ctx, kCGPathFillStroke);

    CGContextRestoreGState(ctx);
}