2011-01-22 8 views
2

私はカスタムUIViewを持っています私はCoreGraphicsを使って描画しています。 CoreGraphicsを使用して、水平のグラデーションを設定し、影を使用しながら丸い矩形のパスにクリップする方法はありますか?私はパスのように書いて、setFillを使って色で塗りつぶすことができますが、グラデーション(水平なものも)はパスを守らない...丸い矩形のパスを持つ水平グラデーション?

EDIT:投稿時複雑な水平グラデーションを行う方法を考え出したので、私の唯一の問題はCGContextのパス内に描画することです。

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

コードのこれらの行は完全に丸四角形、または任意のパス希望のパスにクリップ:

答えて

1

まあ私が私自身の答えを見つけたようです。

+0

'ClosePath'は開いているサブパスを閉じるためのものです。 'path'が既に閉じられている場合、' ClosePath'は何もしません。何らかの理由で 'path'が何らかの理由で部分的なパスでなければ(パス名をより具体的に変更する必要があります)、パスを閉じる時間は' path'でパスをビルドする時です。 –

+0

私の場合、オープンなサブパスであり、あなたのメモを考慮に入れて、私のコードを少しリファクタリングしました:D –

関連する問題