【问题标题】:How can we draw Circle progress as "three fourths" - 3/4?我们如何将圆形进度绘制为“四分之三” - 3/4?
【发布时间】:2016-11-16 21:03:39
【问题描述】:

目前正在制作圆形图表,绘制完整的圆形没有问题。我还需要画一个 3/4 圆,是否有任何指定数学来定义 3/4 圆路径。我尝试用整圈减少错过的位置值,但无法获得准确的结果。有人可以帮忙吗?如果有需要我

UIBezierPath *circlePath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(self.frame.size.width/2.0f, self.frame.size.height/2.0f)
                                                              radius:(self.frame.size.height * 0.5) - ([_lineWidth floatValue]/2.0f)
                                                          startAngle:DEGREES_TO_RADIANS(startAngle)
                                                            endAngle:DEGREES_TO_RADIANS(endAngle)
                                                           clockwise:clockwise];

    circle               = [CAShapeLayer layer];
    circle.path          = circlePath.CGPath;
    circle.lineCap       = kCALineCapRound;
    circle.fillColor     = [UIColor clearColor].CGColor;
    circle.lineWidth     = [_lineWidth floatValue];
    circle.zPosition     = 1; [self.layer addSublayer:circle];
; 

请参考下图,

注意:我附上了来自网络的示例图片,但我确信我需要相同的结果。

【问题讨论】:

    标签: ios objective-c calayer uibezierpath cashapelayer


    【解决方案1】:

    您已经拥有所需的代码。函数bezierPathWithArcCenter:radius:startAngle:endAngle:clockwise: 采用起始角度和结束角度。如果你传入 0 的起始角度和 3π/2 的结束角度,你将得到一个 3/4 的圆。 (3π/2 是 270 度,即一个完整圆的 3/4。)

    请注意,如果您的目标是为 0 度到 360 度的圆设置动画,那么您需要使用不同的技术。为此,您要创建一个完整圆的路径,将其安装到 CAShapeLayer 中,然后将图层的 strokeEnd 属性从 0 设置为 1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-10
      • 2021-12-01
      • 1970-01-01
      • 2014-07-15
      相关资源
      最近更新 更多