添加贝塞尔路径CGPath:的ObjectiveC
问题描述:
我使用的drawRect方法绘制一个矩形。添加贝塞尔路径CGPath:的ObjectiveC
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);
我在samedrawn RECT方法绘制的贝塞尔路径。
[[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
。
+0
哇,我会尝试一下,让你知道。 –
+0
谢谢。有效。 –
为什么你需要这个图层?你为什么使用'CGPathCreateCopyByTransformingPath'?你看过'CGPathAddPath'吗? – Wain
是的,我有。但我不知道如何使用该方法将贝塞尔路径添加到cgpath。 –