Skip to content

Instantly share code, notes, and snippets.

@mbernson
Created November 15, 2021 15:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mbernson/187448ae6bfe0dc1cc16259df8fcb0b9 to your computer and use it in GitHub Desktop.
Save mbernson/187448ae6bfe0dc1cc16259df8fcb0b9 to your computer and use it in GitHub Desktop.
UIActivityIndicatorView in SwiftUI
import SwiftUI
import UIKit
struct Spinner: UIViewRepresentable {
let style: UIActivityIndicatorView.Style
@State var animating: Bool = true
func makeUIView(context: Context) -> UIActivityIndicatorView {
UIActivityIndicatorView(style: style)
}
func updateUIView(_ uiView: UIActivityIndicatorView, context: Context) {
if animating {
uiView.startAnimating()
} else {
uiView.stopAnimating()
}
}
}
struct Spinner_Previews: PreviewProvider {
static var previews: some View {
Group {
Spinner(style: .medium)
.previewLayout(.sizeThatFits)
Spinner(style: .large)
.previewLayout(.sizeThatFits)
}
}
}
struct Spinner_Library: LibraryContentProvider {
@LibraryContentBuilder
var views: [LibraryItem] {
LibraryItem(Spinner(style: .medium), title: "Spinner medium", category: .control)
LibraryItem(Spinner(style: .large), title: "Spinner large", category: .control)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment