iOS - CAShapeLayer.strokeEnd似乎不起作用

时间:2014-07-08 18:40:39

标签: ios core-graphics

我目前正在尝试画一段弧。

我设法绘制了段,但现在我想通过strokeEnd属性控制段的长度,但它不起作用。

这是我的代码:

    let arc:CGMutablePathRef = CGPathCreateMutable()
    CGPathAddArc(arc, nil, arcCenter.x, arcCenter.y, arcDiameter/2, arcStartAngle, arcStopAngle, false)
    let arcLineWidth = 5.0
    let strokedArc:CGpathRef = CGPathCreateCopyByStrokingPath(arc, nil, arcLineWidth, kcGLineCapButt, kCGJoinMiter, 10)
    arcLayer.path = strokedArc
    arcLayer.fillColor = arcColor
    arcView.layer.addsublayer (arcLayer)

    ...

    self.addSubview(arcView)

然后我尝试修改段的长度:

    arcLayer.strokeEnd = 0.5

但它没有做任何事情。

你能告诉我我做错了吗?

谢谢,

MG

1 个答案:

答案 0 :(得分:0)

您正在通过抚摸原始路径创建新路径,然后将新路径指定给形状图层并填充它。

根据您在问题中提供的代码,您只需配置形状图层以填充形状,而不是对其进行描边。因此,strokeEnd属性不会影响中风。


使strokeEnd在原始弧路径上工作。将原始圆弧路径指定给形状图层,并在形状图层上配置描边颜色,线宽等。如果你不想填充弧线,你还必须将填充颜色设置为清晰的颜色(我似乎记得它在Swift中设置为nil时有效。)