2009-06-22 39 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