Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将贝塞尔路径添加到CGPath:ObjectiveC_Objective C_Uibezierpath - Fatal编程技术网

Objective c 将贝塞尔路径添加到CGPath:ObjectiveC

Objective c 将贝塞尔路径添加到CGPath:ObjectiveC,objective-c,uibezierpath,Objective C,Uibezierpath,我使用drawRect方法绘制了一个矩形 CGContextRef context = UIGraphicsGetCurrentContext(); CGRect outline = CGRectMake(4, 4, width - 8, height - 8); CGColorRef white = [[UIColor whiteColor] CGColor]; CGColorRef black = [[UIColor blackColor] CGColor]; CGContextSetF

我使用drawRect方法绘制了一个矩形

CGContextRef context = UIGraphicsGetCurrentContext();
CGRect outline = CGRectMake(4, 4, width - 8, height - 8);

CGColorRef white = [[UIColor whiteColor] CGColor];
CGColorRef black = [[UIColor blackColor] CGColor];

CGContextSetFillColorWithColor(context, white);
CGContextFillEllipseInRect(context, outline);

CGContextSetLineWidth(context, 2.0f);
CGContextSetStrokeColorWithColor(context, black);
CGContextStrokeEllipseInRect(context, outline);
[[UIColor blackColor] setStroke];
[[UIColor whiteColor] setFill];

UIBezierPath * path = [UIBezierPath bezierPath];
[path moveToPoint:point1];
[path addQuadCurveToPoint:point3 controlPoint:point2];
[path addQuadCurveToPoint:point5 controlPoint:point4];
[path setLineWidth:2.0f];
[path stroke];
[path fill];
我用samedrawn rect方法绘制了一条bezier路径

CGContextRef context = UIGraphicsGetCurrentContext();
CGRect outline = CGRectMake(4, 4, width - 8, height - 8);

CGColorRef white = [[UIColor whiteColor] CGColor];
CGColorRef black = [[UIColor blackColor] CGColor];

CGContextSetFillColorWithColor(context, white);
CGContextFillEllipseInRect(context, outline);

CGContextSetLineWidth(context, 2.0f);
CGContextSetStrokeColorWithColor(context, black);
CGContextStrokeEllipseInRect(context, outline);
[[UIColor blackColor] setStroke];
[[UIColor whiteColor] setFill];

UIBezierPath * path = [UIBezierPath bezierPath];
[path moveToPoint:point1];
[path addQuadCurveToPoint:point3 controlPoint:point2];
[path addQuadCurveToPoint:point5 controlPoint:point4];
[path setLineWidth:2.0f];
[path stroke];
[path fill];
我需要在这两个形状上添加一个CALayer,使它们看起来像一个

aPath = CGPathCreateMutable();
CGPathAddEllipseInRect(aPath, nil, outline);
CGPathCloseSubpath(aPath);

pathCopy = CGPathCreateCopyByTransformingPath(aPath, nil);

myLayer = nil;
myLayer = [CAShapeLayer layer];
myLayer.path = pathCopy;
myLayer.fillColor = [[UIColor whiteColor] CGColor];

[self.layer addSublayer:myLayer];
问题是我无法将贝塞尔路径添加到CGPath。这是一个。 另一个问题是,我无法向正在创建的层添加边框颜色或边框宽度。有人能帮忙吗?

试试:

CGPathAddPath(aPath, nil, path.CGPath);
其中,
aPath
是您的可变
CGPath
path
是您的
UIBezierPath

尝试:

CGPathAddPath(aPath, nil, path.CGPath);

其中,
aPath
是您的可变
CGPath
path
是您的
UIBezierPath

为什么需要该层?为什么要使用
CGPathCreateCopyByTransformingPath
?你看过CGPathAddPath吗?看过。但我不知道如何使用这种方法将贝塞尔路径添加到cgpath。为什么需要图层?为什么要使用
CGPathCreateCopyByTransformingPath
?你看过CGPathAddPath吗?看过。但是我不知道如何使用这种方法将贝塞尔路径添加到cgpath。哇,我会尝试一下,让你知道。哇,我会尝试一下,让你知道。