2009-06-22 59 views
7

我想填充通過Core Graphics使用線性CGGradient繪製的多邊形形狀。 CGContextDrawLinearGradient函數從一點到另一點繪製漸變,但它填充整個視圖。如何僅在我繪製的多邊形形狀內顯示漸變?使用CGContext中的漸變填充形狀

回答

16

你可以在你想要的形狀構造CGMutablePath然後用它夾到你想要顯示的區域,像...

// Construct yourClipPath 

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

// Draw Your Gradient 
+2

謝謝,這作品!我發現我不得不調用CGContextSaveGState/CGContextRestoreGState來取消剪切區域。 – titaniumdecoy 2009-06-22 17:37:38