0

我在 UIView 的 drawRect 方法中绘制了一个形状。

这是代码:

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [[UIColor brownColor] CGColor]);
    CGContextAddArc(context, 50, 50, 50, 342.0 * (M_PI / 180), 90.0 * (M_PI / 180), 1);

    CGContextSetFillColorWithColor(context, [[UIColor blackColor] CGColor]);
    CGContextFillPath(context);
    CGContextSetStrokeColorWithColor(context, [[UIColor whiteColor] CGColor]);
    CGContextStrokePath(context);
}

只有第一个功能(填充和描边之间)有效。

如果我先描边,填充不起作用。

我该如何解决这个问题?

4

1 回答 1

1

为什么要设置两个 FillColor ?您想要的是 CGContextDrawPath() 函数,而不是同时调用 CGContextFillPath() 和 CGContextStrokePath。

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [[UIColor brownColor] CGColor]);
CGContextAddArc(context, 50, 50, 50, 342.0 * (M_PI / 180), 90.0 * (M_PI / 180), 1);
//    CGContextSetFillColorWithColor(context, [[UIColor blackColor] CGColor]);
CGContextSetStrokeColorWithColor(context, [[UIColor redColor] CGColor]);
CGContextDrawPath(context, kCGPathFillStroke);
于 2013-07-19T12:02:44.347 回答