Objective c 将贝塞尔路径添加到CGPath:ObjectiveC
我使用drawRect方法绘制了一个矩形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
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。哇,我会尝试一下,让你知道。哇,我会尝试一下,让你知道。