gpt4 book ai didi

ios - CGContextDrawPath 只描边不填充

转载 作者:行者123 更新时间:2023-11-28 21:48:17 34 4
gpt4 key购买 nike

我正在尝试制作一个可以描边和填充但不填充的形状。

这是我的代码:

- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
CGMutablePathRef pathRef = CGPathCreateMutable();
CGContextBeginPath(ctx);

self.dottedLineColor = [UIColor whiteColor];
self.solidLineColor = [UIColor blackColor];
CGContextSetStrokeColorWithColor(ctx, [self.dottedLineColor CGColor]);
CGContextSetFillColorWithColor(ctx, [UIColor blackColor].CGColor);

CGContextSetLineWidth(ctx, 11.0);

for (NSArray *array in previewPoints){
CGPoint pointMadeFromString1 = CGPointFromString([array objectAtIndex:0]);
CGPoint pointMadeFromString2 = CGPointFromString([array objectAtIndex:1]);

CGPathMoveToPoint(pathRef, NULL, pointMadeFromString1.x, pointMadeFromString1.y);
CGPathAddLineToPoint(pathRef, NULL, pointMadeFromString2.x, pointMadeFromString2.y);
/*
CGContextMoveToPoint(ctx, pointMadeFromString1.x, pointMadeFromString1.y);
CGContextAddLineToPoint(ctx, pointMadeFromString2.x, pointMadeFromString2.y);

CGContextSetLineWidth(ctx, 11.0);
const CGFloat dashPattern[2] = {2, 0};
CGContextSetLineDash(ctx, 2, dashPattern, 2);
CGContextStrokePath(ctx);
*/
}
CGContextAddPath(ctx, pathRef);
CGContextClosePath(ctx);

CGContextDrawPath(ctx, kCGPathFillStroke);
CGContextFillPath(ctx);
}

现在是这样的:

enter image description here

中间的区域应该是黑色的。

我该如何解决这个问题?

最佳答案

问题是每次我使用 CGPathMoveToPoint 时,这意味着它无法填充,因为它实际上不是封闭路径。我将其切换为只有数组中的第一个项目使用 CGPathMoveToPoint,然后所有其他项目都使用 CGPathAddLineToPoint

关于ios - CGContextDrawPath 只描边不填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29249060/

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