gpt4 book ai didi

ios - 带有颜色渐变的 UIBezierPath

转载 作者:技术小花猫 更新时间:2023-10-29 11:04:17 31 4
gpt4 key购买 nike

我有一个关于 UIBezierPath 的问题。

例如我有这条路:

现在我想要一个从白色到红色的颜色渐变。从左到右。

这是我的代码:

UIBezierPath *bezierPath;
bezierPath = [UIBezierPath bezierPathWithArcCenter:_center radius:_radius startAngle:((4 * angle)) endAngle:(((20) * angle)) clockwise:YES];
[bezierPath addLineToPoint:_center];
[bezierPath closePath];
UIColor *color = [UIColor colorWithHue:0/sectors saturation:1. brightness:1. alpha:1];
[color setFill];
[color setStroke];
[bezierPath fill];
[bezierPath stroke];

谁能帮帮我?

编辑 1:

我有这个色轮:

enter image description here

    UIBezierPath *bezierPath;

for ( int i = 0; i < 360; i++) {
bezierPath = [UIBezierPath bezierPathWithArcCenter:_center radius:_radius startAngle:((i * angle)) endAngle:(((i + 1) * angle)) clockwise:YES];

[bezierPath addLineToPoint:_center];
[bezierPath closePath];
UIColor *color = [UIColor colorWithHue:i/sectors saturation:1. brightness:1. alpha:1];
[color setFill];
[color setStroke];
[bezierPath fill];
[bezierPath stroke];
}

但我想要这个:(带有白色渐变)

enter image description here

最佳答案

使用 CAGradientLayer 并使用 CAShapeLayer 屏蔽它 像这样

- (void)addCircle{
CAShapeLayer *shapeLayer = [CAShapeLayer new];
shapeLayer.path = [UIBezierPath bezierPathWithOvalInRect:CGRectInset(CGRectMake(10, 10, 100, 100), 4, 4)].CGPath;
shapeLayer.strokeColor = [UIColor redColor].CGColor;
shapeLayer.contentsScale = [UIScreen mainScreen].scale;
shapeLayer.shouldRasterize = NO;


CAGradientLayer *_gradientLayer = [CAGradientLayer layer];
_gradientLayer.frame =self.view.bounds;
_gradientLayer.startPoint = CGPointMake(0.0, 1);
_gradientLayer.endPoint = CGPointMake(1, 0);
_gradientLayer.colors = @[(id)[UIColor blueColor].CGColor,(id)[UIColor redColor].CGColor];

//Add gradient layer to view
[self.view.layer addSublayer:_gradientLayer];
_gradientLayer.mask = shapeLayer;
}

以上方法会添加一个三角形,您可能需要更改起点和终点。您也可以将渐变值更改为您需要的任何值。

Apple Docs

CAGradientLayer Tutorial

更新 更新后更清楚它不是你想要的三角形,但你需要的是 CAGradientLayerCAShapeLayer,你需要遵循相同的方法,您可以添加具有不同颜色和位置(停止)的渐变(如果您要添加位置,请确保位置和颜色相等),然后使用 CAShapeLayer 将其遮盖,这是一个圆圈。

关于ios - 带有颜色渐变的 UIBezierPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32117722/

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