使用CAShapeLayer绘制圆的简单方法

在诸如如何绘制一个光滑的圆圈…… , …绘制圆形……以及…绘制填充圆圈的问题和答案非常广泛,包含许多不必要的步骤,并且使用的方法并不总是最容易重新创建或管理。

绘制圆圈并将其添加到我的UIView的简单方法是什么?

绘制圆的简单方法是创建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我们将其path设置为UIBezierPath

然后我们的UIBezierPath绘制一个bezierPathWithOvalInRect 。 我们设定的CGRect将影响其规模和位置。

现在我们有了我们的圈子,我们可以将它作为sublayer添加到我们的UIView中。

Objective-C的

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

迅速

 view.layer.addSublayer(circleLayer) 

我们的圈子现在在我们的UIView可见。

圈

如果我们希望自定义圆的颜色属性,我们可以通过设置CAShapeLayerstrokefill颜色来轻松实现。

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上找到 。