ActivityIndicator.swift 1004 B

123456789101112131415161718192021222324252627282930313233
  1. //
  2. // ActivityIndicator.swift
  3. // DashKitUI
  4. //
  5. // Created by Pete Schwamb on 2/10/20.
  6. // Copyright © 2020 LoopKit Authors. All rights reserved.
  7. //
  8. import SwiftUI
  9. public struct ActivityIndicator: UIViewRepresentable {
  10. @Binding var isAnimating: Bool
  11. let style: UIActivityIndicatorView.Style
  12. let color: UIColor?
  13. public init(isAnimating: Binding<Bool>, style: UIActivityIndicatorView.Style, color: UIColor? = nil) {
  14. self._isAnimating = isAnimating
  15. self.style = style
  16. self.color = color
  17. }
  18. public func makeUIView(context: UIViewRepresentableContext<ActivityIndicator>) -> UIActivityIndicatorView {
  19. let activityIndicator = UIActivityIndicatorView(style: style)
  20. activityIndicator.color = color
  21. return activityIndicator
  22. }
  23. public func updateUIView(_ uiView: UIActivityIndicatorView, context: UIViewRepresentableContext<ActivityIndicator>) {
  24. isAnimating ? uiView.startAnimating() : uiView.stopAnimating()
  25. }
  26. }