如何根据百分比制作圆圈?

How to make circle based on percentage?

我可以创建一个圆圈,但我需要它从“12:00”开始并达到一定百分比。

 let circlePath = UIBezierPath(arcCenter: CGPoint(x: 100,y: 100), radius: CGFloat(20), startAngle: CGFloat(0), endAngle:CGFloat(M_PI * 2), clockwise: true)

    let shapeLayer = CAShapeLayer()
    shapeLayer.path = circlePath.CGPath

    //change the fill color
    shapeLayer.fillColor = UIColor.clearColor().CGColor
    //you can change the stroke color
    shapeLayer.strokeColor = UIColor.redColor().CGColor
    //you can change the line width
    shapeLayer.lineWidth = 3.0

    cell.progress.layer.addSublayer(shapeLayer)

您需要调整开始和结束角度以满足您的条件。

圆圈上的

"12:00" 将是 3pi/2 或 -pi/2 (-M_PI_2)。一个完整的圆是 2pi (M_PI * 2)。其中的百分比当然是 M_PI * 2 * percentage。所以结束就是你的开始+那个百分比。

let circlePath = UIBezierPath(arcCenter: CGPoint(x: 100,y: 100), radius: CGFloat(20), startAngle: CGFloat(-M_PI_2), endAngle:CGFloat(M_PI * 2 * percentage - M_PI_2), clockwise: true)

其中 percentage0.01.0 范围内的一些 CGFloat