gpt4 book ai didi

iphone - CAShapeLayer 的渐变颜色效果

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:42:47 24 4
gpt4 key购买 nike

我正在尝试在 CAShapeLayer 上应用渐变颜色。为此,我编写了代码,

-(void)addCircle{
{
// Drawing code
UIBezierPath *aPath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(150, 150)
radius:125
startAngle:0
endAngle:DEGREES_TO_RADIANS(180)
clockwise:NO];


CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];
[shapeLayer setFrame: self.frame];
[shapeLayer setPath: [aPath CGPath]];
shapeLayer.lineWidth = 30.0f;
[shapeLayer setStrokeColor:[[UIColor redColor] CGColor]];
shapeLayer.fillColor = [[UIColor clearColor] CGColor];
[shapeLayer setMasksToBounds:YES];


CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.startPoint = CGPointMake(0.5,1.0);
gradientLayer.endPoint = CGPointMake(0.5,0.0);
gradientLayer.frame = CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height);
NSMutableArray *colors = [NSMutableArray array];
for (int i = 0; i < 10; i++) {
[colors addObject:(id)[[UIColor colorWithHue:(0.1 * i) saturation:1 brightness:.8 alpha:1] CGColor]];
}
gradientLayer.colors = colors;
[gradientLayer setMask:shapeLayer];

[self.layer addSublayer:shapeLayer];
}

但是我没有像这样的渐变颜色输出, enter image description here

我想要这样的最终输出, enter image description here

但我的主要目标是在 CAShapeLayer 上应用渐变效果。我给定的代码哪里错了?

最佳答案

主要问题是您将 shapeLayer 添加到 View 层,但实际上您只想将其用作 mask ,因此您应该添加 gradientLayer相反。

下一个问题是 CAGradientLayer 不支持像第二个屏幕截图中那样的径向渐变。您需要进行自定义绘图才能实现该效果(或仅使用图像)。

关于iphone - CAShapeLayer 的渐变颜色效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15805897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com