首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CAGradientLayer径向梯度

CAGradientLayer径向梯度
EN

Stack Overflow用户
提问于 2014-04-18 13:53:33
回答 3查看 5.8K关注 0票数 4

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

代码语言:javascript
复制
NSArray *locations = @[@0.0, @0.1f];

CAGradientLayer *headerLayer = [CAGradientLayer layer];
headerLayer.colors = colors;
headerLayer.locations = locations;

如何使径向渐变颜色?

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

代码语言:javascript
复制
headerLayer.anchorPoint = CGPointMake(0.5, 1.0);

但不起作用。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-14 07:28:31

更新:

似乎是的,其他的答案显示了这个方法。

不幸的是,CAGradientLayer不支持径向梯度。这样做的唯一方法是对CALayer进行子类并自己绘制。

我已经回答了here这个问题,但由于这是一个较旧的问题,另一个可能是重复的。

票数 -3
EN

Stack Overflow用户

发布于 2019-07-20 21:40:12

到2019年,接受的答案是错误的,您可以通过将其类型属性设置为.radial来生成径向梯度。重要的是,startPoint是椭圆或圆中心的坐标,endPoint是外月食或圆的尺寸。所有的坐标必须以基于单元的方式表示(又名1.0是100%)。

下面的Swift示例将绘制位于框架中心的椭圆和设置为与框架匹配的半径:

代码语言:javascript
复制
    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。

票数 17
EN

Stack Overflow用户

发布于 2019-01-21 16:23:18

不能插入径向CAGradientLayer,但可以轻松地将当前层样式修改为径向

代码语言:javascript
复制
layer.type = .radial
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23155578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档