http://www.turnedondigital.com/blog/quartz-tutorial-how-to-draw-in-quartz/

аюсь нарисовать «конический» / «дугообразный» градиент (я не знаю, что будет правильным термином для этого)(Фотошоп называет это «угловым» градиентом - ваш дружественный редактор соседних стековых потоков) используя Objective-C (IOS), очень похоже на изображение, показанное в следующемнить.

После нескольких дней поисков в интернете безрезультатно, я решил обратиться за помощью сюда.

Немного предыстории о том, что я пытаюсь сделать. Моя цель - создать пользовательский UIView, представляющий собой круговую диаграмму выполнения, в основном кольцо, в некоторой степени похожее на индикатор активности, как видно в приложении TweetBot для iPhone (отображается при перетаскивании для обновления, что можно увидеть в действии).Вотпримерно через 17-18 секунд в верхней части экрана iphone). Я хочу, чтобы индикатор прогресса (заливка кольца) был простым двухцветным градиентом, который можно задавать программно, а вид можно изменять.

Заполнение формы кольца градиентом, который «следует» за дугой кольца, - вот где я застрял. Ответы, которые я получаю от поиска в Google, прочтения документации Apple Core Graphics по градиентам и поиска по SO, касаются либо радиальных градиентов, либо линейных / осевых градиентов, чего я не пытаюсь достичь.

Связанная выше ветка предлагает использовать готовые изображения, но это не вариант, потому что цвета градиента должны быть настраиваемыми, вид должен быть изменяемого размера, и заполнение индикатора выполнения не всегда на 100% очевидно (что будет состояние градиента, как показано на рисунке в теме выше).

Единственное решение, которое я придумал, это нарисовать градиент «вручную», поэтому без использованияCGGradientRef, обрезая маленькие кусочки градиента с помощью одного сплошного цвета заливки в круговой траектории. Я не знаю точно, насколько хорошо это будет работать, когда панель анимируется, хотя, это не должно быть так плохо, но это может быть проблемой.

Итак, мой первый вопрос:

Существует ли более простое / отличное решение для рисования конического / дугового градиента в Objective-C (IOS), чем решение, которое я придумал?

Второй вопрос:

Если мне нужно нарисовать градиент вручную в моем виде, используя решение, которое я придумал, как я могу определить или рассчитать (если это вообще возможно) значение (HEX или RGBA) каждого цветового «среза» градиента, который я пытаюсь нарисовать, как показано на рисунке ниже.

(Не могу связать изображение)иллюстрация градиентного среза

Ответы на вопрос(3)

Ваш ответ на вопрос