如何在 iOS 14、SwiftUI 2 中以编程方式更改 PageTabView?
How to change PageTabView programmatically in iOS 14, SwiftUI 2?
我正在探索 Xcode 12 和 SwiftUI 2.0
中出现的新事物
我在 Xcode 12、iOS 14、Swift UI 2 中使用 TabView 和 PageTabViewStyle 创建了一个网页浏览引导屏幕。我想添加下一步按钮单击它时,页面应移至第二个视图。这里 Text("Hello").
struct OnBoardingView: View {
var body: some View {
TabView {
Text("Hi")
Text("Hello")
Text("Welcome")
}
.tabViewStyle(PageTabViewStyle())
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))
}
}
这是一个解决方案演示。用 Xcode 12 / iOS 14
测试
struct OnBoardingView: View {
@State private var selectedPage = 0
var body: some View {
VStack {
HStack {
Button("<") { if selectedPage > 0 {
withAnimation { selectedPage -= 1 }
} }
Spacer().frame(width: 40)
Button(">") { if selectedPage < 2 {
withAnimation { selectedPage += 1 }
} }
}
TabView(selection: $selectedPage) {
Text("Hi").tag(0)
Text("Hello").tag(1)
Text("Welcome").tag(2)
}
.tabViewStyle(PageTabViewStyle())
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))
}
}
}
我正在探索 Xcode 12 和 SwiftUI 2.0
中出现的新事物我在 Xcode 12、iOS 14、Swift UI 2 中使用 TabView 和 PageTabViewStyle 创建了一个网页浏览引导屏幕。我想添加下一步按钮单击它时,页面应移至第二个视图。这里 Text("Hello").
struct OnBoardingView: View {
var body: some View {
TabView {
Text("Hi")
Text("Hello")
Text("Welcome")
}
.tabViewStyle(PageTabViewStyle())
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))
}
}
这是一个解决方案演示。用 Xcode 12 / iOS 14
测试struct OnBoardingView: View {
@State private var selectedPage = 0
var body: some View {
VStack {
HStack {
Button("<") { if selectedPage > 0 {
withAnimation { selectedPage -= 1 }
} }
Spacer().frame(width: 40)
Button(">") { if selectedPage < 2 {
withAnimation { selectedPage += 1 }
} }
}
TabView(selection: $selectedPage) {
Text("Hi").tag(0)
Text("Hello").tag(1)
Text("Welcome").tag(2)
}
.tabViewStyle(PageTabViewStyle())
.indexViewStyle(PageIndexViewStyle(backgroundDisplayMode: .always))
}
}
}