如何使用CAGradientLayer最有效地围绕圆/带角度绘制渐变?
我在这个项目的帮助下做了一个下面的。它使用位图上下文进行绘图,但CAGradientLayer会更有效。
不幸的是,我只能弄清楚如何用它制作线性渐变。
如何使用CAGradientLayer最有效地围绕圆/带角度绘制渐变?
我在这个项目的帮助下做了一个下面的。它使用位图上下文进行绘图,但CAGradientLayer会更有效。
不幸的是,我只能弄清楚如何用它制作线性渐变。
我意识到自从提出这个问题以来已经过去了很多年,但是对于现在偶然发现它的任何人来说,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)
渐变层目前仅支持线性渐变。但是,如果您查看渐变层的界面,它包含一个类型属性。现在唯一定义的类型是 kCAGradientLayerAxial(线性)。
存在 type 属性的事实表明 Apple 将在未来的某个日期添加更多类型,而径向渐变看起来非常相似。
您可能会考虑创建自己的 CAGradientLayer 自定义子类,它可以绘制径向渐变和线性渐变。我在网上看到过创建自定义 CALayer 子类的演示项目。