SwiftUI: как создать круговой виджет панели «прогресс» с «затухающей» начальной линией, если она заполнена (100%), как вIOS

Программируем под IOS
Гость
SwiftUI: как создать круговой виджет панели «прогресс» с «затухающей» начальной линией, если она заполнена (100%), как в

Сообщение Гость »


Я создаю свой собственный «круговой» виджет индикатора выполнения в 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() } } Любые идеи будут полезны.

Вернуться в «IOS»