2

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];

これら 2 つの図形が 1 つに見えるように、これらの 2 つの図形に 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 に追加できないことです。それは1つです。もう1つは、作成中のレイヤーに境界線の色または境界線の幅を追加できないことです。誰でも助けることができますか?

4

1 に答える 1