gpt4 book ai didi

ios - CAShapeLayer fillColor 不渲染

转载 作者:行者123 更新时间:2023-11-28 22:13:13 24 4
gpt4 key购买 nike

我有一个接受 UIBezierPath 作为参数并相应地绘制形状的方法。如果我用纯色填充形状,它会很好地呈现,但如果我尝试使它成为带有 alpha 的颜色,我首先会收到 ARC 警告,要求更改代码并使用桥,然后填充颜色根本不会呈现。

这行得通,但不是我想要的:

standShapeLayer.fillColor = [[UIColor redColor] CGColor];

这会生成 ARC 警告“Objective C 指针类型 UIColor 隐式转换为 C 指针 CGColorRef”。

standShapeLayer.fillColor = [UIColor colorWithRed:0.2 green:0.66 blue:0.86 alpha:2.0f];

这会运行但没有 fillColor 应用于形状:

standShapeLayer.fillColor = (__bridge CGColorRef)([UIColor colorWithRed:0.2 green:0.66 blue:0.86 alpha:2.0f]);

下面是该方法的完整代码:

-(void)drawShape:(UIBezierPath *)standShape {

[standShapeLayer removeFromSuperlayer];
selectedStand = standShape;
standShapeLayer = [CAShapeLayer layer];
standShapeLayer.path = standShape.CGPath;
standShapeLayer.fillColor = (__bridge CGColorRef)([UIColor colorWithRed:0.2 green:0.66 blue:0.86 alpha:2.0f]);
NSLog(@"color = %@", standShapeLayer.fillColor); // This logs the correct colour which is not rendered.
// standShapeLayer.fillColor = [[UIColor redColor] CGColor]; << This works but is not what I need.
standShapeLayer.strokeColor = [[UIColor redColor] CGColor];
standShapeLayer.lineWidth = 2;
[_imageView.layer addSublayer:standShapeLayer];

}

我需要做什么才能让带有 alpha 的颜色填充 CAShapeLayer 形状?

最佳答案

您的 alpha 不正确。

alpha - The opacity value of the color object, specified as a value from 0.0 to 1.0.

努力改变

standShapeLayer.fillColor = (__bridge CGColorRef)([UIColor colorWithRed:0.2 green:0.66 blue:0.86 alpha:2.0f]);

standShapeLayer.fillColor = [[UIColor colorWithRed:0.2 green:0.66 blue:0.86 alpha:0.7f] CGColor];

关于ios - CAShapeLayer fillColor 不渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22373003/

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