在How to draw a smooth circle...,...Draw Circle...和...draw filled Circles等问题中,问题和答案非常广泛,包含许多不必要的步骤,所使用的方法并不总是最容易重复 - 创建或管理。
绘制圆圈并将其添加到UIView
的简单方法是什么?
答案 0 :(得分:100)
绘制圆圈的简便方法是创建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
会影响其大小和位置。
现在我们有了圈子,我们可以将其作为UIView
添加到sublayer
。
[[self.view layer] addSublayer:circleLayer];
view.layer.addSublayer(circleLayer)
我们的圈子现已显示在UIView
。
如果我们希望自定义圈子的颜色属性,我们可以通过设置CAShapeLayer
的{{1}} - 和stroke
颜色轻松完成此操作。
fill
[circleLayer setStrokeColor:[[UIColor redColor] CGColor]];
[circleLayer setFillColor:[[UIColor clearColor] CGColor]];
另外,所有属性都可以在关于主题https://developer.apple.com/.../CAShapeLayer_class/index.html的文档中找到。
答案 1 :(得分:0)
使用CAShapeLayer类使绘图变得容易... 1.创建CAShapeLayer对象 2.创建循环路径 3.将路径设置为所需的CAShapeLayer路径 4.将图层添加到视图中
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