使用CAShapeLayer绘制圆的简单方法

Ale*_*izi 32 objective-c cashapelayer ios uibezierpath swift

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

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

Ale*_*izi 109

绘制圆圈的简单方法是创建CAShapeLayer并添加一个圆圈UIBezierPath.

CAShapeLayer *circleLayer = [CAShapeLayer layer];
[circleLayer setPath:[[UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 50, 100, 100)] CGPath]];
Run Code Online (Sandbox Code Playgroud)

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

在创建之后CAShapeLayer我们将其path设置为a UIBezierPath.

UIBezierPath然后我们画了一个bezierPathWithOvalInRect.在CGRect我们设置会影响它的大小和位置.

现在,我们有我们的圈子,我们可以把它添加到我们的UIView作为sublayer.

[[self.view layer] addSublayer:circleLayer];
Run Code Online (Sandbox Code Playgroud)

view.layer.addSublayer(circleLayer)
Run Code Online (Sandbox Code Playgroud)

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

圈

如果我们希望自定义圆的颜色属性,我们可以通过设置CAShapeLayer's stroke- 和fill颜色轻松实现.

[circleLayer setStrokeColor:[[UIColor redColor] CGColor]];
[circleLayer setFillColor:[[UIColor clearColor] CGColor]];
Run Code Online (Sandbox Code Playgroud)

shapeLayer.strokeColor = UIColor.red.cgColor;
shapeLayer.fillColor = UIColor.clear.cgColor;
Run Code Online (Sandbox Code Playgroud)

Circle_wColors

另外所有属性都可以在的主题文档https://developer.apple.com/.../CAShapeLayer_class/index.html上找到.

  • 如何增加上述红色边框/笔划的大小? (2认同)