2016-05-19 12 views
2

円弧を使用して多色の円の枠線を作成していますが、ビューに何も表示されていません。私はreferenceとしてこの質問を使用しています。アーククラスをチェックするには、私が提供したリンクを見てください。 indexPath.itemの数値が.69より大きい場合は、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

問題の束がここにありますstrokeStartstrokeEndについては

  1. 、あなたは、円形のベジェ曲線のラジアン角度の計算を行うように見えるが、それはaddFigureは、これらのパラメータを使用している方法ではありません。これは、これらの要素を同名のCAShapeLayerのプロパティに渡しており、それらは0から1になりますが、0からM_PI * 2.0にはなりません。

  2. addFigureCAShapeLayerを作成していますが、returnの値では何もしません。私はあなたがCAShapeLayersublayerまたはそのようなものとして追加すると思っていたでしょう。

+0

私は番号1を修正する方法を理解していますが、番号2はどのように修正しますか? – johnson

+0

ここでは、3つのシェイプレイヤーを作成しています.1つは 'addFigure'呼び出しのそれぞれに、もう1つはこの質問のコードにあります。それぞれの呼び出しの結果を 'addFigure'に取り込み、両方をサブレイヤとして追加したいと思います。そして、この3番目の「CAShapeLayer」は完全に私にとって冗長に思えるので、そこで達成しようとしていたことが他にない限り、完全に取り除く傾向があります。 – Rob

+0

それは理にかなっていますが、私はまだ少し失われています。だからあなたは 'let shapeLayer = ...'と以下が重複しているので、削除するべきだと言っていますか?もしそうなら、どのようにアークをビューに追加するのですか? – johnson

関連する問題