CAGradientLayer 径向渐变

Mar*_*iam 2 objective-c uiview cagradientlayer

我使用以下代码来设置渐变颜色:

NSArray *locations = @[@0.0, @0.1f];

CAGradientLayer *headerLayer = [CAGradientLayer layer];
headerLayer.colors = colors;
headerLayer.locations = locations;
Run Code Online (Sandbox Code Playgroud)

如何制作径向渐变颜色?

我想我必须改变位置,但我没有猜到正确的位置。另外,我试过这个:

headerLayer.anchorPoint = CGPointMake(0.5, 1.0);
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

谢谢。

Sté*_*uca 12

到 2019 年,接受的答案是错误的,您可以通过将其 type 属性设置为 .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)
Run Code Online (Sandbox Code Playgroud)

例如,上面的示例可用于向视图添加小插图(参见图像)。

请注意,半径可以大于框架,并且中心也可以通过指定大于 1 或小于 -1 的坐标来放置在框架之外。

在此处输入图片说明