2009-06-22 11 views
7

Ich möchte eine Polygonform füllen, die ich über Core Graphics mit einem linearen CGGradient gezeichnet habe. Die Funktion CGContextDrawLinearGradient zeichnet einen Farbverlauf von einem Punkt zum anderen, füllt jedoch die gesamte Ansicht aus. Wie kann ich den Verlauf nur innerhalb der Polygonform anzeigen, die ich gezeichnet habe?Füllen einer Form mit einem Gradienten in CGContext

Antwort

16

Sie können eine CGMutablePath in der gewünschten Form konstruieren verwenden Sie es dann in die Region, die Sie anzeigen möchten Clip, so etwas wie ...

// Construct yourClipPath 

CGContextAddPath(yourContext, yourClipPath); 
CGContextClosePath(yourContext); 
CGContextClip(yourContext); 

// Draw Your Gradient 
+2

Danke, das funktioniert! Ich fand heraus, dass ich CGContextSaveGState/CGContextRestoreGState aufrufen musste, um die Region zu entfernen. – titaniumdecoy

Verwandte Themen