2012-10-08 136 views
0

他我正在制作简单的饼图,并且在绘制它时遇到了问题。 我想改变每一块饼图的颜色,但是当方法drawRect:被调用时,我的饼图在标志颜色中。如何正确使用?如何使用几种颜色绘制

for (int i = 0; i < [values count]; i++) { 
    CGContextSetRGBFillColor(ctx, 0.2*i, 0.2*i, 0.2*i, 1); 

    [bezierPath moveToPoint:chartCenter]; 

    startAngle = endAngle; 

    endAngle = startAngle + [self degreesToRadians:[values[i] floatValue]*step]; 
    NSLog(@"%.2f, %.2f", startAngle, endAngle); 

    [bezierPath addArcWithCenter:chartCenter radius:radius startAngle:startAngle endAngle:endAngle clockwise:1]; 
    [bezierPath addLineToPoint:chartCenter]; 

    [bezierPath fill]; 
} 
+0

你有没有改变颜色?即不同的灰色阴影? – musefan

+0

我想在设置颜色时通过incement'i'将开始灰色的颜色更改为灰色灰色。 –

回答

0

好吧,我的代码工作正常。我在绘图方法中出现了一些错误,我创建了圆弧而不是圆弧。非常遗憾。

的问题是在该方法中:

- (浮点)degreesToRadians:(浮点)度{ 返回度* M_PI/180; }

我用M_1_PI代替M_PI,我的圆弧是圆的。

1

林不是100%肯定,但我认为你必须使用-[UIColor setFill]设置填充颜色为贝塞尔路径,例如

UIColor *color = [UIColor colorWithWhite:0.2*i alpha:1.0]; 
[UIColor setFill]; 

您应该也可能为每个图表段开始一个新的bezier路径。

相关问题