Progress Indicators

Explore iOS ProgressView linear bar and circular spinner with progress control interactively.

9:41
●●●●WiFi🔋
Downloads
Linear Progress
📄
Project.zip
65% — 32.5 MB of 50 MB
🎨
Photos.zip
30% — 90 MB of 300 MB
Circular Progress
65%
Determinate
Indeterminate
⚠️ HIG Violation: Improper progress indicator
📚 HIG Guidelines — Try It Yourself
✓ Do — Good Example
✗ Don't — Bad Example

✓ Do This

  • Use linear bars for known-duration tasks
  • Use spinners for indeterminate loading
  • Show percentage or file size when helpful
  • Use system tint color by default

✗ Don't Do This

  • Don't use a spinner when progress is measurable
  • Don't show stale or frozen progress
  • Don't make the progress bar too small
  • Don't use custom animations that confuse users

👆 See the bad pattern in the iPhone preview above

SwiftUI Code
// Linear determinate ProgressView(value: 0.65) .tint(.blue) // Indeterminate spinner ProgressView()