如何用不同的颜色填充我的圆圈(CGContextAddArc)?

时间:2011-08-02 00:10:16

标签: objective-c cocoa-touch

我有以下内容,但它只绘制一个圆的边框。 我想填补这个圈子。 ??

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextAddArc(context, 50, 50, 50, 0, 30, 0);

//set the fill or stroke color
CGContextSetRGBFillColor(context, 1, 0.5, 0.5, 1.0);
CGContextSetRGBStrokeColor(context, 0.5, 1, 0.5, 1.0);

//fill or draw the path
CGContextDrawPath(context, kCGPathStroke);
CGContextDrawPath(context, kCGPathFill);

6 个答案:

答案 0 :(得分:2)

您需要使用 CGContextFillPath 来填充路径。

答案 1 :(得分:1)

删除与笔划相关的线条,仅使用与填充相关的线条。

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextAddArc(context, 50, 50, 50, 0, 30, 0);

//set the fill or stroke color
CGContextSetRGBFillColor(context, 1, 0.5, 0.5, 1.0);

//fill or draw the path
CGContextDrawPath(context, kCGPathStroke);

如果你只想要一个圆圈

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextAddArc(context, 50, 50, 50, 0, 30, 0);

CGContextSetRGBStrokeColor(context, 0.5, 1, 0.5, 1.0);
CGContextDrawPath(context, kCGPathStroke);

答案 2 :(得分:1)

要填充纯色,kCGPathFill

中应为CGContextDrawPath(context, kCGPathFill);

对于有颜色的笔划,它应该在kCGPathStroke

中有CGContextDrawPath(context, kCGPathStroke);

这样的事情:

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextAddArc(context, 50, 50, 50, 0, 30, 0);

//set the fill or stroke color
CGContextSetRGBFillColor(context, 1, 0.5, 0.5, 1.0);

//fill on drawn path
CGContextDrawPath(context, kCGPathFill);

答案 3 :(得分:0)

CGContextAddArc(ctx, x, y, 1.0, 0, 2 * Pi, 1); // Or is it 2 * M_PI?

CGContextSetFillColorWithColor(ctx, fillColor);
CGContextSetStrokeColorWithColor(ctx, strokeColor);
CGContextDrawPath(ctx, kCGPathFillStroke);;

答案 4 :(得分:0)

如果您想填写圈子,可以使用

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextAddArc(context, 50, 50, 50, 0, 30, 0);

CGContextSetRGBFillColor(context, 1, 0.5, 0.5, 1.0);

CGContextFillPath(context);

以下代码用于绘制圆圈的边框

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextAddArc(context, 50, 50, 50, 0, 30, 0);

CGContextSetRGBStrokeColor(context, 0.5, 1, 0.5, 1.0);

CGContextStrokePath(context);

所以,在这种情况下,你必须选择填充圆圈的第一个选择

答案 5 :(得分:0)

填充路径:

    let context = UIGraphicsGetCurrentContext()
    CGContextAddArc(context, self.bounds.width/2, self.bounds.height/2, 150, 0, CGFloat(2 * M_PI), 0)
    UIColor.redColor().setFill()
    CGContextFillPath(context)

圆圈:

        let context = UIGraphicsGetCurrentContext()
        CGContextAddArc(context, self.bounds.width/2, self.bounds.height/2, 150, 0, CGFloat(2 * M_PI), 0)
        CGContextSetLineWidth(context, 10)
        UIColor.greenColor().set()
        CGContextStrokePath(context)