2012-07-30 80 views
2

如何在視圖內的封閉路徑上繪製CGGradient?我試圖繪製漸變,但是,它是在視圖本身上繪製的,而不是僅在我填充到視圖中的CGPath中繪製。我想只在填充的路徑上繪製漸變,而不是在視圖上繪製漸變。在封閉路徑上繪製CGGradient

回答

3
  1. 保存上下文的狀態。
  2. 將路徑設置爲上下文中的剪輯區域。
  3. 繪製漸變。
  4. 恢復上下文的狀態。

實施例:

CGContextSaveGState(context); 
CGContextAddPath(context, myPath); 
CGContextClip(context); 
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, kNilOptions); 
CGContextRestoreGState(context); 
+0

感謝。如何繪製中心顏色和頂部和底部相同顏色的漸變?我有這樣的數組CFArrayRef colors =(__bridge CFArrayRef)[NSArray arrayWithObjects:(id)lightGradientColor.CGColor, (id)darkGradientColor.CGColor,(id)lightGradientColor.CGColor, nil];但淺色只在頂部。 – jarryd 2012-07-30 07:39:59

+1

您應該爲此發佈一個新問題。 – 2012-07-30 07:40:36