LoginSignup
1
1

enumを使ってUIStateを管理する

Posted at

状態でUIを切り替えてみる

enumを使って、ロード中、成功、エラーの分岐処理を作りswitchを使って、Objextを切り替えるのをやってみました。

英語で、loading(ロード中....)、success(成功!)、failed(失敗した!)を意味するenumを定義して今回使ってます。

enum LoadingState {
        case loading, success, failed
    }

全体のコード

import SwiftUI

struct LoadingView: View {
    var body: some View {
        Text("Loading...")
    }
}
struct SuccessView: View {
    var body: some View {
        Text("Success!")
    }
}

struct FailedView: View {
    var body: some View {
        Text("Failed.")
    }
}

struct SwitchingView: View {
    enum LoadingState {
        case loading, success, failed
    }
    
    @State private var loadingState = LoadingState.failed
    
    var body: some View {
        switch loadingState {
        case .loading:
            LoadingView()
        case .success:
            SuccessView()
        case .failed:
            FailedView()
        }
    }
}

#Preview {
    SwitchingView()
}

Previewの画面:

スクリーンショット 2024-03-07 10.26.04.png

最後に

今回は、enumを使って状態の管理をして、表示するObjectのロジックを作ってみました。こちらの海外の動画がSwiftUI学習の参考になるのでよく見ています。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1