2011-01-22 62 views
2

我有一個使用CoreGraphics繪製的自定義UIView。使用CoreGraphics,我將如何設置水平漸變並將其剪切到我的圓角矩形路徑,同時仍然使用陰影?我寫了儘可能多的路徑,我可以使用setFill填充顏色,但是漸變(也是水平的)不會遵循路徑...具有圓形矩形路徑的水平漸變?

編輯:由於發佈時間不久前),我想出瞭如何做一個複雜的水平漸變,所以現在我唯一的問題是在我的CGContext的路徑中繪製它。

回答

1

嗯,看來我已經找到我自己的答案:

CGContextAddPath(context, path); 
CGContextClosePath(context); 
CGContextClip(context); 
CGContextDrawLinearGradient(context, gradient, startPt, endPt, 0); 

這些代碼行完美地把它夾到一個圓角的矩形的路徑,或任何期望的路徑。

+0

`ClosePath`用於關閉打開的子路徑。如果`path`已經關閉,`ClosePath`將不會執行任何操作。除非`path`由於某種原因(特定情況下應該將其名稱更改爲特定名稱)專門爲部分路徑,否則關閉路徑的時間是在`path`中構建路徑的時間,而不是之後。 – 2011-01-22 12:08:40