โ ๋ทฐ๋ฅผ ์ ํ์ํค๋ ์ ๋๋ฉ์ด์ ์ธ 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 |