我使用以下代码设置渐变颜色:
NSArray *locations = @[@0.0, @0.1f];
CAGradientLayer *headerLayer = [CAGradientLayer layer];
headerLayer.colors = colors;
headerLayer.locations = locations;如何使径向渐变颜色?
我想我必须改变位置,但我没有猜到正确的位置。还有,我试过这个:
headerLayer.anchorPoint = CGPointMake(0.5, 1.0);但不起作用。
谢谢。
发布于 2014-11-14 07:28:31
更新:
似乎是的,其他的答案显示了这个方法。
不幸的是,CAGradientLayer不支持径向梯度。这样做的唯一方法是对CALayer进行子类并自己绘制。
我已经回答了here这个问题,但由于这是一个较旧的问题,另一个可能是重复的。
发布于 2019-07-20 21:40:12
到2019年,接受的答案是错误的,您可以通过将其类型属性设置为.radial来生成径向梯度。重要的是,startPoint是椭圆或圆中心的坐标,endPoint是外月食或圆的尺寸。所有的坐标必须以基于单元的方式表示(又名1.0是100%)。
下面的Swift示例将绘制位于框架中心的椭圆和设置为与框架匹配的半径:
let g = CAGradientLayer()
// We want a radial gradient
g.type = .radial
g.colors = [UIColor.clear.cgColor, UIColor.black.cgColor]
let center = CGPoint(x: 0.5, y: 0.5)
g.startPoint = center
let radius = 1.5
g.endPoint = CGPoint(x: radius, y: radius)例如,上面的示例可用于向视图中添加一个小片段(见图像)。
请注意,半径可以大于框架,中心也可以放置在框架之外,方法是指定坐标大于1或小于-1。

发布于 2019-01-21 16:23:18
不能插入径向CAGradientLayer,但可以轻松地将当前层样式修改为径向
layer.type = .radialhttps://stackoverflow.com/questions/23155578
复制相似问题