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
7
A
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
Grazie, che funziona! Ho capito che dovevo chiamare CGContextSaveGState/CGContextRestoreGState per sganciare la regione. – titaniumdecoy