У меня есть решение моей проблемы. Вместо использования path.addAr c (), я теперь использую функцию, чтобы получить столько точек, сколько хотелось бы вдоль ar c, а затем использую path.addLine () для каждой из этих точек. Если вы хотите больше точек для более гладкого пути, просто уменьшите значение n.
func getCirclePoints(centerPoint: CGPoint, radius: CGFloat, startAngle: CGFloat, endAngle: CGFloat, clockwise: Bool) -> [CGPoint] {
let n : CGFloat = clockwise ? -1 : 1
let points: [CGPoint] = stride(from: startAngle - n, through: endAngle + n, by: n).map {
let degreesToRadians = CGFloat($0) * .pi / 180
let x = centerPoint.x + radius * cos(degreesToRadians)
let y = centerPoint.y + radius * sin(degreesToRadians)
return CGPoint(x: x, y: y)
}
return points
}