如何根据百分比制作圆圈?
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)
其中 percentage
是 0.0
到 1.0
范围内的一些 CGFloat
。
我可以创建一个圆圈,但我需要它从“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)
其中 percentage
是 0.0
到 1.0
范围内的一些 CGFloat
。