为什么没有出现什么?

时间:2016-05-19 04:24:13

标签: ios swift uibezierpath

我正在使用弧创建一个多色圆边框,但我在视图中看不到任何内容。我将此问题用作reference。要检查弧类,请查看我提供的链接。如果indexPath.item的数字大于.69,我需要一个从0到0.69的红色弧形,其余为橙色。休息我的意思是阵列中的百分比。我做错了什么?

if (number[indexPath.item] >= 0.70 ){

        let arc = Arc()

         let circlePath = UIBezierPath(arcCenter: CGPointMake(cell.progress.frame.width / 2, cell.progress.frame.height / 2), radius: CGFloat(60), startAngle: CGFloat(-M_PI_2), endAngle:CGFloat(M_PI * 2 * numbers[indexPath.item] - M_PI_2), clockwise: true)

        arc.addFigure(circlePath.CGPath, fillColor: UIColor.clearColor(), strokeColor: UIColor.redColor(), strokeStart: 0.0, strokeEnd: CGFloat(0.69), lineWidth: 5.0, miterLimit: 0.0, lineDashPhase: 0.0, layer: cell.progress.layer)

        arc.addFigure(circlePath.CGPath, fillColor: UIColor.clearColor(), strokeColor: UIColor.orangeColor(), strokeStart: CGFloat(0.69), strokeEnd: CGFloat(numbers[indexPath.item]), lineWidth: 5.0, miterLimit: 0.0, lineDashPhase: 0.0, layer: cell.progress.layer)

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



        //shapeLayer.fillColor = UIColor.clearColor().CGColor

        //shapeLayer.strokeColor = UIColor.redColor().CGColor

        //shapeLayer.lineWidth = 5.0

        //cell.progress.layer.addSublayer(shapeLayer)
    }

1 个答案:

答案 0 :(得分:1)

这里有很多问题:

  1. 对于strokeEndaddFigure,您似乎会对圆形贝塞尔曲线进行弧度角度计算,但这不是CAShapeLayer使用这些参数的方式。它将这些属性移到同名的0属性中,这些属性从1转到0,而不是M_PI * 2.0addFigure

  2. CAShapeLayer正在创建return,但您没有对CAShapeLayer值执行任何操作。我原以为你会将结果sublayer添加为http://www.yiiframework.com/doc-2.0/yii-web-view.html#registerCssFile%28%29-detail 或类似的东西。