SwiftUI/SwiftUI Study
[SwiftUI] TabView 연습과 오류?
hyunjuntyler
2023. 4. 11. 21:35
이것에 대한 고민이 많았어서 이렇게 글을 남긴다. 나는 탭뷰를 연습해보고 있었다.
import SwiftUI
struct ContentView: View {
var body: some View {
VStack{
TabView{
FirstPage()
Text("2")
Text("3")
Text("4")
}
.tabViewStyle(.page)
.indexViewStyle(.page(backgroundDisplayMode: .always))
}
}
}
위와 같이 PageView같이 형성된다. 나는 여기에 앞뒤로 가는 버튼을 추가해서 좀더 직관적으로 만들고 싶었다. 그래서 추가해봤다.
import SwiftUI
struct ContentView: View {
@State private var page = 0
var body: some View {
VStack{
TabView(selection: $page){
Text("1").tag(0)
Text("2").tag(1)
Text("3").tag(2)
}
.tabViewStyle(.page)
.indexViewStyle(.page(backgroundDisplayMode: .always))
HStack{
Button("<"){
if page > 0 {
withAnimation { page -= 1 }
}
}
.font(.largeTitle)
Spacer().frame(width: 300)
Button(">") {
if page < 2 {
withAnimation { page += 1 }
}
}
.font(.largeTitle)
}
}
}
}
아래와 같이 버튼이 추가됐다!! 하지만 뭔가 버튼이 저 page index (동그라미들) 위에 위치시키고 싶어서 HStack을 ZStack으로 대체해봤다. 이렇게 화면을 바꾸어 보았다!! 문제는... 아이패드로 플레이그라운드를 실행했을 때 문제가 생겼다!!
많은 해결과정을 거쳤으나 생략하고 결론은 앱을 여러군데에서 열면서 Crash가 생긴 것 같다! 사실 SafeArea문제인줄 알았지만 아닌 것 같다..