Como desenhar uma roda de cores gradiente usando CAGradientLayer?

Eu tenho alguma referência desses links-

Qual é o algoritmo atrás de uma roda de cores?

Matemática atrás da roda de cores

Esquemas básicos de cores

Como preencher um caminho mais bege com cores degradê

Eu passei pelo conceito de "espaço de cores HSV". Mas eu quero desenhar uma roda de cores usando RGB com a ajuda deCAGradientLayer.

Aqui está o trecho de código de como fazer uma roda de cores usando uma matriz de cores RGB simples eUIBezierPath -

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()
}

OndegetAngleAt() egetArcPath() são as funções privadas para desenhar o caminho com um ângulo.

Aqui está a saída final do meu código -

Agora, minha pergunta é como dar a essas cores um efeito gradiente para que cada cor se misture com a camada de cores gradiente?

questionAnswers(1)

yourAnswerToTheQuestion