2012-08-14 41 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);