Как сделать конусный градиент в iOS с помощью Core Graphics / Quartz 2D? - PullRequest
9 голосов
/ 21 марта 2011

Как нарисовать такой конический градиент в iOS с использованием Core Graphics / Quartz 2D API?

Образец конического градиента http://ods.com.ua/win/eng/other/gimpdoc-html/painta27.gif

Ответы [ 4 ]

6 голосов
/ 07 марта 2012

Недавно я создал собственный класс CALayer для этого: AngleGradientLayer

Он не проверен на производительность, поэтому будьте осторожны.

screenshot

5 голосов
/ 07 декабря 2018

Если кто-то все еще ищет решение, Apple наконец-то представила .conic тип градиента в iOS 12. Идеально подходит для маскировки, чтобы создать круговой индикатор с градиентом.

Пример:

let gradientLayer = CAGradientLayer()
gradientLayer.startPoint = CGPoint(x: 0.5, y: 0.5)
gradientLayer.endPoint = CGPoint(x: 0.5, y: 0)
gradientLayer.type = .conic
gradientLayer.colors = [UIColor.red.cgColor, UIColor.orange.cgColor, UIColor.green.cgColor]
gradientLayer.frame = bounds

conic_gradient

2 голосов
/ 09 ноября 2015

Я хотел получить чистое решение Swift для этого, и это было для меня довольно сложной задачей.

В конце я написал AEConicalGradient , который делает это с интересным подходом (используя круг и рисуя линии разных цветов к центру).

AEConicalGradient

2 голосов
/ 27 марта 2011

Для этого стиля градиента нет функции Кварц.Если вы не готовы копаться в математике, я бы посоветовал вам использовать для этого готовые изображения.Это не проблема, если она нужна только для маски непрозрачности.

...