ProgressBar.swift 799 B

1234567891011121314151617181920212223242526
  1. import SwiftUI
  2. struct ProgressBar: View {
  3. @Binding var value: Float
  4. var body: some View {
  5. GeometryReader { geometry in
  6. ZStack(alignment: .leading) {
  7. Capsule(style: .circular)
  8. .frame(width: geometry.size.width, height: geometry.size.height)
  9. .opacity(0.3)
  10. .foregroundColor(.secondary)
  11. Capsule(style: .circular)
  12. .frame(
  13. width: min(CGFloat(self.value) * geometry.size.width, geometry.size.width),
  14. height: geometry.size.height
  15. )
  16. .foregroundColor(.accentColor)
  17. .animation(.linear, value: value)
  18. }
  19. }
  20. .frame(height: 20)
  21. }
  22. }