swift
SwiftUI Splash(스플래시) 화면 구현하기
호리둥절
2023. 5. 17. 14:54
SplashView.swift 생성
[splashView.swift]
import SwiftUI
struct SplashView: View {
var body: some View {
ZStack {
Color.blue
.edgesIgnoringSafeArea(.all)
VStack {
Image(systemName: "star.fill")
.font(.system(size: 100))
.foregroundColor(.white)
Text("스플래시 화면")
.font(.title)
.foregroundColor(.white)
}
}
}
}
메인 화면(View)에서 SplashView를 초기 화면으로 사용
[contentview.swift]
struct ContentView: View {
@State private var showMainView = false
var body: some View {
ZStack {
if showMainView {
// 메인 콘텐츠나 이후의 뷰들을 여기에 작성합니다.
} else {
SplashView()
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
withAnimation {
showMainView = true
}
}
}
}
}
}
}
SplashView의 onAppear 수식어를 사용하여 스플래시 화면이 나타날 때 애니메이션과 함께 showMainView를 true로 전환합니다. DispatchQueue.main.asyncAfter를 사용하여 0.5초의 지연 시간을 주고, 클로저 내에서 showMainView를 true로 설정합니다. 이로써 스플래시 화면이 일정 시간 동안 표시되고, 그 후에 메인 콘텐츠가 나타납니다.
나머지 메인 콘텐츠나 추가적인 뷰들은 if showMainView 블록 안에 작성하면 됩니다. showMainView가 true일 때만 해당 블록이 실행되므로, 스플래시 화면이 완전히 사라진 후에 메인 콘텐츠가 표시됩니다.