gpt4 book ai didi

ios - 在 iOS 上用渐变填充路径

转载 作者:可可西里 更新时间:2023-11-01 03:04:15 25 4
gpt4 key购买 nike

CAShapeLayer 上,我绘制了一个封闭的 UIBezierPath。我可以通过设置 fillColor 来填充这个形状,但是我想用渐变填充这个形状。我如何设置 CAGradientLayer,使其剪裁到贝塞尔曲线轮廓的形状?

最佳答案

草稿示例如下:

...
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = UIGraphicsGetCurrentContext();

UIColor *gradientColor = [UIColor colorWithRed:0.51 green:0.0 blue:0.49 alpha:1.0];

NSArray *gradientColors = [NSArray arrayWithObjects:
(id)[UIColor blueColor].CGColor,
(id)gradientColor.CGColor,
(id)[UIColor redColor].CGColor, nil];
CGFloat gradientLocations[] = {0, 0.5, 1};
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (CFArrayRef)gradientColors, gradientLocations);

UIBezierPath *roundedRectanglePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(10, 10, 200, 200) cornerRadius:6];
CGContextSaveGState(context);
[roundedRectanglePath fill];
[roundedRectanglePath addClip];
CGContextDrawLinearGradient(context, gradient, CGPointMake(10, 10), CGPointMake(210, 10), 0);
CGColorSpaceRelease(colorSpace);
CGGradientRelease(gradient);

...

关于ios - 在 iOS 上用渐变填充路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10044750/

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