iPhone - 使用自定义颜色无效的CGDrawArc上的setStroke

时间:2013-05-01 02:03:47

标签: iphone ios core-graphics

我在Core Graphics中使用弧线绘制了一个完整的圆圈。圆的每个弧是不同的颜色。如果我使用标准颜色(例如[UIColor redColor]),它会很好。但是,如果我指定一个自定义颜色(例如自定义红色[UIColor colorWithRed:193 green:69 blue:57 alpha:1]),颜色会丢失并且会变成白色?!

下面的屏幕截图,我还在那里编写了一个小阴影和半透明圆圈。

result using custom colour

我的代码如下,它包含在我的自定义视图的DrawRect方法中。关于如何使用自定义颜色处理每个弧的笔划的任何想法?

for (DoughnutChartSliceObject *slice in _slices) {

    CGContextAddArc(ctx, self.frame.size.width/2, self.frame.size.height/2, _radius, slice.startAngleInRadians, slice.endAngleInRadians, 0);
    [slice.colour setStroke];

    //Define line width and cap
    CGContextSetLineWidth(ctx, _stroke);
    CGContextSetLineCap(ctx, kCGLineCapButt);

    //draw it!
    CGContextDrawPath(ctx, kCGPathStroke);

}

1 个答案:

答案 0 :(得分:3)

UIColor的组件是0.0到1.0。因此,我想你想要:

[UIColor colorWithRed:193.0/255.0 green:69.0/255.0 blue:57.0/255.0 alpha:1]