iOS/SwiftUI

[SwiftUI] Splash

HarryJeonn 2022. 6. 15. 19:23

Why ?


  • 프로젝트 본격적으로 시작 하기 전 와이어플로우를 보고 화면구조를 잡아보기로 했다.
  • 한번 흐름을 쭉 보면서 UI나 대부분의 기능은 제외하고 훑어보는 방식으로 진행했다.
  • 그 중에 SwiftUI는 LaunchScreen.storyboard가 없는데 어떤식으로 하면 좋을까 생각하다가 정리했다.

How ?


struct SplashView: View {
    @State private var isDone: Bool = false
    
    var body: some View {
        VStack {
            if isDone {
                // TODO: - Home View
            } else {
                Text("스플래시")
                    .font(.system(size: 50))
                    .fontWeight(.bold)
                    .padding()
            }
        }
        .onAppear {
            DispatchQueue.main.asyncAfter(deadline: .now() + 2.5) {
                withAnimation {
                    isDone.toggle()
                }
            }
        }
    }
}
  • ContentView에서 SplashView를 보여주고, SplashView에서는 2.5초 후 isDone이 toggle되면서 화면전환을 한다.