✅ 뷰를 전환시키는 애니메이션인 Flip 기능
1. MainView
import SwiftUI
struct ContentView: View {
@State var isFlipped = false
var body: some View {
VStack(spacing: 0) {
ZStack {
if isFlipped {
FrontView()
} else {
BackView()
}
}
.scaleEffect(x: isFlipped ? -1 : 1)
.frame(width: 200, height: 300)
.rotation3DEffect(.degrees(isFlipped ? 180 : 0), axis: (x: 0, y: -1, z: 0))
.animation(.easeInOut(duration: 0.6), value: isFlipped)
.onTapGesture {
isFlipped.toggle()
}
.frame(width: 329, height: 480)
}
}
}
180도가 돌때마다, 보여줄 2개의 뷰를 ZStack안에 두고,
Flip의 경우를 Bool변수로 두고, 이 변수에 따라 보여줄 뷰를 작성해주면 된다.
2. FrontView
import SwiftUI
struct FrontView: View {
var body: some View {
ZStack{
Rectangle()
.fill(.blue)
.cornerRadius(10)
Text("앞의 화면🎁")
.bold()
}
.frame(width: 200, height: 300)
}
}
앞의 화면을 보여줄 Front View.
그리고 이 뷰를 터치하면, OnTapGesture에 의해 토글이 작동하고
화면 전환이 이루어진다.
3. BackView
import SwiftUI
struct BackView: View {
var body: some View {
ZStack{
Rectangle()
.fill(.green)
.cornerRadius(10)
Text("뒤의 화면🎁")
.bold()
}
.frame(width: 200, height: 300)
}
}
[ 결과 화면 ]
'🍎 iOS > SwiftUI' 카테고리의 다른 글
[SwiftUI] Onboarding 화면 만들기 (0) | 2024.08.10 |
---|---|
[SwiftUI] Custom Alert View (0) | 2024.06.16 |
[SwiftUI] SwiftData (0) | 2024.04.22 |
[SwiftUI] TextEditor BackgroundColor 적용 (0) | 2024.04.22 |
[SwiftUI] NavigationStack (0) | 2024.04.04 |