
Я пробовал использую путь, но я не уверен, как нарисовать только дугу, а не полукруг, как это делает мой код.
Вот код, использующий путь:
struct ArcShape: Shape {
func path(in rect: CGRect) -> Path {
var path = Path()
let center = CGPoint(x: rect.midX, y: rect.midY)
let radius: CGFloat = 100
let startAngle = Angle(degrees: 180)
let endAngle = Angle(degrees: 0)
path.addArc(center: center, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: false)
return path
}
}
А вот более близкий подход с использованиемCircle и обрезал его, но я не знаю, как его «размять» и сделать более плоским, а также закруглить углы. Я попробовал использовать .cornerRadius и сделать рамку широкий и не высокий, но результата я не увидел, только круг на рамке подстроился под меньший размер:
Circle()
.trim(from: 0.55, to: 0.95)
.stroke(.linearGradient(colors: [.blue, .cyan],
startPoint: .leading,
endPoint: .trailing), lineWidth: 5)
Подробнее здесь: https://stackoverflow.com/questions/790 ... cumference