如何将角半径添加到UIBezier路径弧

时间:2016-03-02 10:39:20

标签: swift uibezierpath

我正在使用UIBezierPath arc方法创建一个弧。我想要将圆弧的两端修圆 - 请参阅附图,了解具体要求! circularRect版本中使用的cornerRadius选项不适用于arc方法。任何人都有关于如何实现这一目标的想法?提前致谢。 (这与先前提出的问题不同,因为它提供了确切的要求)

 let center = CGPoint(x:bounds.width/2, y: bounds.height/2)
 let radius: CGFloat = max(bounds.width, bounds.height)
 let arcWidth: CGFloat = 10
 let startAngle: CGFloat = 4.6 / 3 * π
 let endAngle: CGFloat = 4.4 / 3 * π

 let path = UIBezierPath(arcCenter: center, radius: radius/2 - arcWidth/2, startAngle: startAngle, endAngle: endAngle, clockwise: true)

 path.lineWidth = arcWidth
 // all thats needed to make the ends rounded is
 path.lineCapStyle = .Round
 path.stroke()

enter image description here

2 个答案:

答案 0 :(得分:12)

解决方案

实际上诀窍是lineCap属性。您可以使用以下代码。

MaxAllowedChoice

结果

enter image description here

答案 1 :(得分:4)

所需要的只是添加一行代码:     path.lineCapStyle = .Round。