Я создаю свой собственный «круговой» виджет индикатора выполнения в SwiftUI, и мне интересно, как подойти к его реализации. Если прогресс круга составляет 100% (то есть круг заполнен), я хочу, чтобы «начало» линии имело эффект «затухания», чтобы начало и конец линии не «сливались». Я видел это в виджетах "батарея" на iOS. Вот пример виджета «полного» и «не полного» аккумулятора:


Вот мой текущий код виджета:
struct CircleProgressView: Просмотр { @Binding var прогресс: Float var body: some View { ZStack { Круг() .stroke(ширина линии: 10) .opacity(0.3) .foregroundColor(Цвет(UIColor.systemGray3)) Круг() .trim(от: 0.0, до: CGFloat(min(self.progress, 1.0))) .stroke(стиль: StrokeStyle(lineWidth: 10, lineCap: .round, lineJoin: .round)) .foregroundColor(Цвет(UIColor.systemGreen)) .rotationEffect(Угол(градусы: 270,0)) } .padding() } } Любые идеи будут полезны.