猫でもわかるWebプログラミング

試行錯誤しながらエンジニア(プログラマー)として働く猫のブログ。技術的な話や、働き方の話、読書録とか、試行錯誤している日常の話。

SwiftUIでインジケーター(くるくる)を表示する

f:id:yoshiki_utakata:20191225120619p:plain

インジケーターのビューのコード

とりあえずこのコードを適当な名前で保存する。

import SwiftUI
import UIKit

struct Indicator: UIViewRepresentable {
    typealias UIViewType = UIActivityIndicatorView

    @State var isAnimating: Bool = true
    let style: UIActivityIndicatorView.Style = .medium

    func makeUIView(context: UIViewRepresentableContext<Indicator>) -> Indicator.UIViewType {
        UIActivityIndicatorView(style: style)
    }

    func updateUIView(_ uiView: UIActivityIndicatorView, context: UIViewRepresentableContext<Indicator>) {
        isAnimating ? uiView.startAnimating() : uiView.stopAnimating()
    }
}

使い方例

struct Pending: View {
    var body: some View {
        return Indicator().frame(width: 44, height: 44)
    }
}