我正在使用弧创建一个多色圆边框,但我在视图中看不到任何内容。我将此问题用作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)
}
答案 0 :(得分:1)
这里有很多问题:
对于strokeEnd
和addFigure
,您似乎会对圆形贝塞尔曲线进行弧度角度计算,但这不是CAShapeLayer
使用这些参数的方式。它将这些属性移到同名的0
属性中,这些属性从1
转到0
,而不是M_PI * 2.0
到addFigure
。
CAShapeLayer
正在创建return
,但您没有对CAShapeLayer
值执行任何操作。我原以为你会将结果sublayer
添加为http://www.yiiframework.com/doc-2.0/yii-web-view.html#registerCssFile%28%29-detail
或类似的东西。