我有一个Picker
with .pickerStyle(SegmentedPickerStyle())
使其成为分段控件。我想让页面在之间平滑滑动,而不是使用条件语句替换视图。
这是我迄今为止所做的 gif:
这是到目前为止的代码(由if
,而不是在不同页面之间切换):
struct AuthView: View {
@State private var authPath = 0
/* ... */
var body: some View {
VStack {
Picker(selection: $authPath, label: Text("Authentication Path")) {
Text("Log In").tag(0)
Text("Sign Up").tag(1)
}
.pickerStyle(SegmentedPickerStyle())
Spacer()
if authPath == 0 {
LogInView(/* ... */)
} else {
SignUpView(/* ... */)
}
Spacer()
}
.padding()
.background(Color("Color.Background").edgesIgnoringSafeArea(.all))
}
}
我想要类似的东西UIPageViewController https://developer.apple.com/documentation/uikit/uipageviewcontroller。如果有 SwiftUI 版本或好的替代方案,那确实会有帮助。
但是,如果我确实需要求助于 UIKitUIViewRepresentable
,我不知道如何用 SwiftUI 来实现它。
我通过创建两者来实现这一目标Picker
and TabView
像这样:
struct ContentView: View {
@State private var selectedPage: Int = 0
var body: some View {
VStack {
Picker("", selection: $selectedPage) {
Text("First").tag(0)
Text("Second").tag(1)
Text("Third").tag(2)
}.pickerStyle(.segmented)
TabView(selection: $selectedPage) {
FirstView().tag(0)
SecondView().tag(1)
ThirdView().tag(2)
}.tabViewStyle(.page)
}
}
}
两者都Picker
and TabView
共享相同的选择状态,因此当Picker
被选中或TabView
滚动,其他也改变了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)