Geo*_*e_E 4 ios uipageviewcontroller swift swiftui uiviewrepresentable
我有一个Pickerwith.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))
}
}
Run Code Online (Sandbox Code Playgroud)
我想要类似的东西UIPageViewController。如果有 SwiftUI 版本或好的替代方案,那确实会有帮助。
但是,如果我确实需要使用 UIKit UIViewRepresentable,我不知道如何使用 SwiftUI 来实现它。
我通过创建两者来实现这一点Picker,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)
}
}
}
Run Code Online (Sandbox Code Playgroud)
和 都Picker共享TabView相同的选择状态,因此当Picker选择或TabView滚动时,另一个也会发生变化。