2009-06-22 5 views
7

Voglio riempire una forma di poligono che ho disegnato tramite Core Graphics con un CGGradient lineare. La funzione CGContextDrawLinearGradient disegna un gradiente da un punto a un altro, ma riempie l'intera vista. Come posso visualizzare il gradiente solo all'interno della forma del poligono che ho disegnato?Riempire una forma con una sfumatura in CGContext

risposta

16

È possibile costruire un CGMutablePath nella tua forma desiderata quindi utilizzarlo per agganciare alla regione che si desidera visualizzare, qualcosa di simile ...

// Construct yourClipPath 

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

// Draw Your Gradient 
+2

Grazie, che funziona! Ho capito che dovevo chiamare CGContextSaveGState/CGContextRestoreGState per sganciare la regione. – titaniumdecoy