gpt4 book ai didi

ios - 在 SwiftUI 中使用分段式选取器在两个页面之间滑动

转载 作者:行者123 更新时间:2023-11-29 05:11:02 25 4
gpt4 key购买 nike

我有一个带有.pickerStyle(SegmentedPickerStyle())Picker,使其成为分段控件。我想让页面在之间平滑地滑动,而不是使用条件语句替换 View 。

这是我迄今为止所做的 gif:

What I have made

这是到目前为止的代码(由 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的东西。如果有 SwiftUI 版本或好的替代方案,那确实会有帮助。

但是,如果我确实需要通过 UIViewRepresentable 求助于 UIKit,我不知道如何使用 SwiftUI 来实现它。

最佳答案

我通过创建 PickerTabView 来实现这一点,如下所示:

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)
}
}
}

PickerTabView 共享相同的选择状态,因此当选择 PickerTabView 时> 滚动,其他也发生变化。

关于ios - 在 SwiftUI 中使用分段式选取器在两个页面之间滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59689342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com