web-dev-qa-db-ja.com

CAShapeLayerを使用して簡単に円を描く方法

滑らかな円を描く方法......円を描く... 、および ...塗りつぶされた円を描く 質問と回答は非常に広く、多くの不要な手順が含まれており、使用する方法が常に最も簡単に再作成または管理できるとは限りません。

円を描いてUIViewに追加する簡単な方法は何ですか?

31

円を描く簡単な方法は、CAShapeLayerを作成し、UIBezierPathを追加することです。

objective-c

CAShapeLayer *circleLayer = [CAShapeLayer layer];
[circleLayer setPath:[[UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 50, 100, 100)] CGPath]];

スイフト

let circleLayer = CAShapeLayer();
circleLayer.path = UIBezierPath(ovalIn: CGRect(x: 50, y: 50, width: 100, height: 100)).cgPath;

CAShapeLayerを作成したら、そのpathUIBezierPathに設定します。

UIBezierPathbezierPathWithOvalInRectを描画します。設定したCGRectは、サイズと位置に影響します。

サークルができたので、UIViewとしてsublayerに追加できます。

objective-c

[[self.view layer] addSublayer:circleLayer];

スイフト

view.layer.addSublayer(circleLayer)

これで、UIViewにサークルが表示されます。

Circle

円の色プロパティをカスタマイズする場合は、CAShapeLayerstroke-およびfill色を設定することで簡単にカスタマイズできます。

objective-c

[circleLayer setStrokeColor:[[UIColor redColor] CGColor]];
[circleLayer setFillColor:[[UIColor clearColor] CGColor]];

スイフト

shapeLayer.strokeColor = UIColor.red.cgColor;
shapeLayer.fillColor = UIColor.clear.cgColor;

Circle_wColors

追加のプロパティについては、の件名に関するドキュメント https://developer.Apple.com/.../CAShapeLayer_class/index.html を参照してください。

105