Here is a bit modified code that works with Xcode 12.1 / iOS 14.1. So the issue might be either in place of usage or in getFillWidth
function.
struct TestBarView: View {
@State private var value = 0.0
var body: some View {
BarView(progress: value)
.onAppear {
value = 0.8
}
}
}
struct BarView: View {
var progress: Double = 0.0
var progressAnimation: Animation {
Animation
.linear
.speed(0.5)
.delay(0.02)
}
var body: some View {
ZStack {
ZStack(alignment: .leading) {
RoundedRectangle(cornerRadius: 12.0)
.fill(Color(.lightGray))
.opacity(0.1)
.frame(height: 15)
.overlay(GeometryReader { geometry in
RoundedRectangle(cornerRadius: 12.0)
.fill(Color.blue)
.frame(width: geometry.size.width * CGFloat(progress), height: 15)
.animation(self.progressAnimation)
}, alignment: .leading)
}
}
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…