2009-06-22 18 views
7

Core Graphicsを使用して線形CGグラデーションで描画したポリゴンシェイプを塗り潰したいと思います。 CGContextDrawLinearGradient関数はあるポイントから別のポイントへグラデーションを描画しますが、ビュー全体を塗りつぶします。描画したポリゴンの形状の中にのみ勾配を表示するにはどうすればよいですか?CGContextでグラデーションを使用してシェイプを塗りつぶす

答えて

16

あなたは...あなたは、何かのように表示したい領域にクリップするためにそれを使用し、あなたの所望の形状に働く

// Construct yourClipPath 

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

// Draw Your Gradient 
+2

おかげで、CGMutablePathを構築することができます!私は、CGContextSaveGState/CGContextRestoreGStateを呼び出してリージョンを解除する必要があることを知りました。 – titaniumdecoy

関連する問題