Je suis une référence de ces liens-Comment dessiner une roue de couleurs de dégradé à l'aide de CAGradientLayer?
Je suis passé par le concept de "HSV color space". Mais je veux dessiner une roue de couleur en utilisant RGB avec l'aide de CAGradientLayer
.
Voici l'extrait de code de faire une roue de couleur en utilisant de simples tableau de couleurs RVB et UIBezierPath
-
func drawColorWheel()
{
context?.saveGState()
range = CGFloat(100.00/CGFloat(colorArray.count))
for k in 0 ..< colorArray.count
{
drawSlice(startPercent: CGFloat(k) * range, endPercent: CGFloat(CGFloat(k + 1) * range), color: colorArray.object(at: k) as! UIColor)
}
context?.restoreGState()
}
func drawSlice(startPercent: CGFloat, endPercent: CGFloat, color: UIColor)
{
let startAngle = getAngleAt(percentage: startPercent)
let endAngle = getAngleAt(percentage: endPercent)
let path = getArcPath(startAngle: startAngle, endAngle: endAngle)
color.setFill()
path.fill()
}
Où getAngleAt()
et getArcPath()
sont les fonctions privées pour dessiner le chemin avec un angle.
Voici le résultat final de mon code -
Maintenant, ma question est la façon de donner ces couleurs un effet de dégradé de sorte que chaque couleurs se mélangent avec couche de dégradé de couleur?
Superbe réponse +1 –