2017-02-01 16 views
2

私はSwiftの初心者ですが、カラーホイールに似た虹色のグラデーションで楕円を描きようとしています。Swiftの楕円で虹彩グラデーションを描く

私はこれにどのようにアプローチするのか混乱しています。私は現在、楕円を描いています:

let context: CGContext = UIGraphicsGetCurrentContext()! 
    context.setFillColor() 
    context.addEllipse(in: Rectangle) 
    context.drawPath(using: .fill) 

しかし、その代わりに塗りつぶし色を設定する、私はその中に虹のグラデーションを描きたいです。

私はこの勾配法を見てきました:

context.drawLinearGradient() 

しかし、私はそれについて移動するかどうかはわかりません。誰かが私を正しい方向に向けることができたら、私はそれを感謝します。ありがとう!

+1

CGContextには、角度勾配の組み込みサポートがありません。たとえば、次のようなサードパーティライブラリが利用できます。https://github.com/paiv/AngleGradientLayer – jtbandes

+1

関連項目:http://stackoverflow.com/questions/6485468/drawing-an-angle-angular-conical- arcing-gradient-in-objective-c-ios- – jtbandes

+0

@jtbandesの使用anglegradientlayerライブラリへの参照をありがとう! – codex

答えて

2
drawLinearGradient(_:start:end:options:) 

塗料提供開始点と終了点によって規定される線に沿って変化するグラデーション塗りつぶし。

CGGradientオブジェクトの位置0の色は、開始点にマップされます。 CGGradientオブジェクト内の位置1の色は、終点にマッピングされます。勾配の位置値に基づいて、これら2つの点の間で線形補間が行われます。オプションフラグは、開始点の前に、または終了点の後にグラデーションを描画するかどうかを制御します。

+0

これは私が探していたものではありませんでした。コメント内で他の誰かが参照している角度勾配ライブラリは、助けに終わった。しかし、あなたの応答と方法の説明に感謝します。 – codex

関連する問題