使用CAGradientLayer进行角度/圆度渐变

时间:2014-03-06 10:15:31

标签: ios core-animation gradient geometry cagradientlayer

如何使用 CAGradientLayer 最有效地在圆周/角度周围绘制渐变?

我在project的帮助下制作了一个。它使用位图上下文进行绘制,但 CAGradientLayer 会更有效。

不幸的是,我只能弄清楚如何使用它来制作线性渐变。

2 个答案:

答案 0 :(得分:3)

渐变层目前仅支持线性渐变。但是,如果查看渐变图层的界面,则它包含一个type属性。现在唯一定义的类型是kCAGradientLayerAxial(linear)。

有一个类型属性这一事实表明Apple将在未来某个日期添加更多类型,并且径向渐变看起来像是一个非常类似的添加。

您可能会考虑创建自己的CAGradientLayer自定义子类,它绘制径向渐变和线性渐变。我在网上看过创建自定义CALayer子类的演示项目。

答案 1 :(得分:1)

我知道自问这个问题以来已经过去了很多年,但是对于现在偶然发现这个问题的人,iOS 12添加了圆锥形渐变类型,使之成为可能。

gradientLayer.type = CAGradientLayerType.conic
gradientLayer.frame = bounds
gradientLayer.colors = [startColor.cgColor, endColor.cgColor]
gradientLayer.startPoint = CGPoint(x: 0.5, y: 0.5)
gradientLayer.endPoint = CGPoint(x: 0.5, y: 0)