0

在 iOS 上,如果我们这样做

CGContextMoveToPoint(contextFoo, 0, 0);
CGContextAddLineToPoint(contextFoo, x, y);
CGContextAddLineToPoint(contextFoo, x2, y2);
// ... and many more CGContextAddLineToPoint

然后在此之后,如果我们执行 a CGContextStrokePath,我们将获得一个轮廓,或者如果我们执行 ,我们将获得CGContextFillPath“填充”,但我们不能同时执行这两种操作,因为在描边或填充之后,“当前路径”就消失了。我们如何才能填充和描边路径(例如想要黄色填充和橙色轮廓)?

我们可以将MoveToandAddLine调用移动到一个函数中,然后调用该函数,进行填充,然后再次调用该函数,然后进行描边,但是有很多xy这使得将它们全部传递给函数非常麻烦。有什么方法可以做到这一点?

4

1 回答 1

3
CGContextDrawPath(context, kCGPathFillStroke);
// to both Fill and Stroke your context
// or kCGPathFill/kCGPathStroke to only fill/stroke

您可以使用以下方法保存您的路径(以将其重用于多个相同形状的东西):

CGPathBeginPath/MoveToPoint/AddLine/... 非常类似于 CGContext/...

对于您的示例:

[[UIColor yellowColor] setFill];                      
[[UIColor orangeColor] setStroke];

CGContextDrawPath(context, kCGPathFillStroke);
于 2012-08-14T22:25:21.377 回答