12

如何使用 Core Graphics / Quartz 2D API 在 iOS 中绘制这样的锥形渐变?

锥形梯度样品
(来源:ods.com.ua

4

4 回答 4

15

如果有人还在寻找解决方案,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

圆锥梯度

于 2018-12-07T07:45:11.983 回答
6

最近我为此制作了一个自定义的 CALayer 类:AngleGradientLayer

它没有经过性能测试,所以要小心。

截屏

于 2012-03-07T11:11:32.587 回答
3

我想要纯粹的 Swift 解决方案,这对我来说也是一项具有挑战性的任务。

最后,我写了AEConicalGradient,它用有趣的方法来做到这一点(通过使用一个圆圈并在中心绘制不同颜色的线条)。

AEConicalGradient

于 2015-11-09T15:01:51.353 回答
2

这种渐变风格没有 Quartz 函数。除非您准备好深入研究其背后的数学,否则我建议您为此使用预制图像。如果您只需要它用于不透明蒙版,这不是问题。

于 2011-03-27T12:53:30.583 回答