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

本業エンジニアリングマネージャー。副業Webエンジニア。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)
    }
}