円弧を使用して多色の円の枠線を作成していますが、ビューに何も表示されていません。私は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を修正する方法を理解していますが、番号2はどのように修正しますか? – johnson
ここでは、3つのシェイプレイヤーを作成しています.1つは 'addFigure'呼び出しのそれぞれに、もう1つはこの質問のコードにあります。それぞれの呼び出しの結果を 'addFigure'に取り込み、両方をサブレイヤとして追加したいと思います。そして、この3番目の「CAShapeLayer」は完全に私にとって冗長に思えるので、そこで達成しようとしていたことが他にない限り、完全に取り除く傾向があります。 – Rob
それは理にかなっていますが、私はまだ少し失われています。だからあなたは 'let shapeLayer = ...'と以下が重複しているので、削除するべきだと言っていますか?もしそうなら、どのようにアークをビューに追加するのですか? – johnson