我正在尝试对SwiftUI进度视图中的进度条进行动画化。我发现了一些可以帮助实现这一点的东西,但是在UIProgressView中,我试图用SwifTUI实现这一点。目前的做法:
ProgressView(value: 0.25).animation(Animation.easeInOut(duration: 3))
问题是整个视图都被动画化了。我只想让进度条动画化。
我找到了解决办法
@State private var counter = 0.0
var body: some View {
ProgressView(value: counter, total: 100.0)
.onAppear {
self.runCounter(counter: self.$counter, start: 0.0, end: 50.0, speed: 0.05)
}
}
func runCounter(counter: Binding<Double>, start: Double, end: Double, speed: Double) {
counter.wrappedValue = start
Timer.scheduledTimer(withTimeInterval: speed, repeats: true) { timer in
counter.wrappedValue += 1.0
if counter.wrappedValue == end {
timer.invalidate()
}
}
}