在像如何使用Cashapelayer和UIBezierPath绘制平滑的圆形、在Xcode中绘制圆形和绘制填充圆形等问题中,问题和答案非常广泛,包含许多不必要的步骤,所使用的方法并不总是最易于重新创建或管理的。
有什么简单的方法可以绘制一个圆并将其添加到我的
有什么简单的方法可以绘制一个圆并将其添加到我的
UIView
中吗?UIView
中吗?绘制圆形的简单方法是创建一个 CAShapeLayer
并添加一个 UIBezierPath
。
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
中看到圆形。
如果我们想要自定义圆形的颜色属性,我们可以通过设置 CAShapeLayer
的 stroke
和 fill
颜色轻松实现。
[circleLayer setStrokeColor:[[UIColor redColor] CGColor]];
[circleLayer setFillColor:[[UIColor clearColor] CGColor]];
shapeLayer.strokeColor = UIColor.red.cgColor;
shapeLayer.fillColor = UIColor.clear.cgColor;
此外,更多相关属性可以在的文档中找到:https://developer.apple.com/.../CAShapeLayer_class/index.html.
let shapeLayer = CAShapeLayer()
let center = view.center
let circulPath = UIBezierPath(arcCenter: center, radius: 100, startAngle: 0, endAngle: 2.0 * CGFloat.pi, clockwise: true)
shapeLayer.path = circulPath.cgPath
view.layer.addSublayer(shapeLayer)
shapeLayer.fillColor = UIColor.red.cgColor
如果想要进一步学习,可以查看 CALayer.com。