2012-08-14 80 views
0

在iOS上,如果我们做在iOS上,如何用大纲填充路径? (或两个填充和描边路径)

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

那么在此之后,如果我们做一个CGContextStrokePath,我们将得到一个轮廓,或者如果我们CGContextFillPath,我们得到的“补“,但我们不能这样做,因为在中风或填充之后,”当前路径“消失了。我们如何填充和描边一条路径(比如想要一个黄色填充和橙色轮廓)?

我们可以移动MoveToAddLine调用的函数,调用该函数,做填充,并再次调用该函数,并做了行程,但也有许多xy,使所有的人传递给功能相当麻烦。有什么办法可以做到这一点?

回答

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

您可以保存路径BTW使用(再使用它的形状相同的多个事物):

CGPathBeginPath/MoveToPoint/AddLine/...非常相似CGContext上/ ...

对于你的例子:

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

CGContextDrawPath(context, kCGPathFillStroke);