设置线帽样式不起作用UIBezierPath

时间:2016-09-19 08:06:01

标签: ios swift core-graphics uibezierpath

这是我的代码:

    let cross = UIBezierPath()
    cross.move(to: CGPoint(x: skull.bounds.maxX, y: skull.bounds.minY))
    cross.addLine(to: CGPoint(x: skull.bounds.minX, y: skull.bounds.maxY))
    cross.close()
    UIColor.red.set()
    cross.lineWidth = 3.0
    cross.lineCapStyle = .round
    cross.stroke()

我想围绕线的末端,但它仍然是正方形,我应该怎么做?

3 个答案:

答案 0 :(得分:6)

刚刚在PlayGround上测试过,希望它会有所帮助

let cross = UIBezierPath()
cross.moveToPoint(CGPoint(x: 10, y: 100)) // your point
cross.addLineToPoint(CGPoint(x: 100, y: 10)) // your point
cross.closePath()
cross.lineWidth = 23.0
cross.lineJoinStyle = .Round
cross.stroke()

<强>结果

enter image description here

答案 1 :(得分:4)

行上限样式配置行尾的样式。你有封闭的路径,即没有行结束。

您可能正在寻找行连接样式,它会影响路径的所有“角点”或“顶点”。

或者,如果您只是想要直线,请不要关闭路径。否则你会得到两个线段:一个从起点到终点,另一个回到起点。

答案 2 :(得分:2)

Swift 4.1更新到Umair Afzal的代码:

let cross = UIBezierPath()
cross.move(to: CGPoint(x: 10, y: 100)) // your point
cross.addLine(to: CGPoint(x: 100, y: 10)) // your point
cross.lineWidth = 12
cross.lineCapStyle = .round
cross.stroke()