Dibujo de un gradiente de ángulo / angular / "Cónico" / "Arco" en Objective-C (IOS) utilizando Core Graphics

Estoy tratando de dibujar un gradiente "cónico" / "arco" (no sé cuál sería el término correcto para esto) (Photoshop lo llama un gradiente de "ángulo": su amigable editor de stackoverflow de vecindario) usando Objective-C (IOS), casi exactamente como la imagen que se muestra en la siguientehil.

Después de días de buscar en Google y buscar en Internet en vano, he decidido pedir ayuda aquí.

Un poco de información sobre lo que estoy tratando de hacer. Mi objetivo es crear una UIView personalizada, que es una barra de progreso circular, un anillo básicamente, algo similar al indicador de actividad como se ve en la aplicación TweetBot para iPhone (se muestra al arrastrar para actualizar, que se puede ver en acciónaqu, alrededor de 17-18 segundos en el video, en la parte superior de la pantalla del iPhone). Quiero que el indicador de progreso (el relleno del anillo) sea un simple gradiente de dos colores, que se puede configurar mediante programación, y que la vista sea redimensionable.

Rellenar la forma del anillo con un degradado que "sigue" el arco del anillo es donde estoy atascado. Las respuestas que obtengo de googlear, leer la documentación de Core Graphics de Apple sobre gradientes y buscar en SO son sobre gradientes radiales o gradientes lineales / axiales, que no es lo que estoy tratando de lograr.

El hilo vinculado anteriormente sugiere usar imágenes prefabricadas, pero esta no es una opción porque los colores del gradiente deben ser configurables, la vista debe ser redimensionable y el relleno de la barra de progreso no siempre es 100% lleno obviamente ( cuál sería el estado del gradiente como se muestra en la imagen en el hilo de arriba).

La única solución que se me ocurrió es dibujar el gradiente "manualmente", por lo que sin usar unaCGGradientRef, recortando pequeñas porciones del gradiente con rellenos de un solo color sólido dentro de una ruta circular. Sin embargo, no sé exactamente qué tan bien funcionará esto cuando la barra se esté animando, no debería ser tan malo, pero podría ser un problema.

Así que mi primera pregunta:

Existe una solución más fácil / diferente para dibujar un gradiente cónico / de arco en Objective-C (IOS) que la solución que se me ocurrió?

Segunda pregunta

Si tengo que dibujar el gradiente manualmente en mi vista usando la solución que se me ocurrió, ¿cómo puedo determinar o calcular (si esto es posible) el valor (HEX o RGBA) de cada "corte" de color del gradiente que Estoy tratando de dibujar, como se ilustra en la imagen a continuación.

(No se puede vincular la imagen) ilustración de rebanada de gradiente

Respuestas a la pregunta(3)

Su respuesta a la pregunta