微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 SwiftUI 2 中创建自定义 PageView 时出错

如何解决在 SwiftUI 2 中创建自定义 PageView 时出错

我正在开发一个应用程序,它需要一个 PageView 中的 6 个项目,xcode 正在起作用,所以我来到 Stack Overflow 并找到了 pawello2222 的方法,发现它真的很有帮助,但我仍然需要连接它到顶部的水平链接。这是代码,谢谢一百万。

原始解决方案:How can I implement PageView in SwiftUI?

下面是我的代码和我想要实现的,向左或向右滑动有效,但点击链接不会改变视图

struct TestingView: View {
    @State var selection = 0

    var body: some View {
        vstack {
            HStack(spacing: 10) {
                vstack {
                    Text("Link 1")
                        .foregroundColor(self.selection == 0 ? Color.blue : Color("Silver").opacity(0.7))
                        .font(.caption)
                        .fontWeight(.bold)
                        .clipShape(Rectangle())
                        .onTapGesture {
                            withAnimation(.default) {
                                self.selection = 0
                            }
                        }
                }

                Spacer(minLength: 0)

                vstack {
                    Text("Link 2")
                        .foregroundColor(self.selection == 1 ? Color.blue : Color("Silver").opacity(0.7))
                        .font(.caption)
                        .fontWeight(.bold)
                        .clipShape(Rectangle())
                        .onTapGesture {
                            withAnimation(.default) {
                                self.selection = 1
                            }
                        }
                }

                Spacer(minLength: 0)

                vstack {
                    Text("Link 3")
                        .foregroundColor(self.selection == 2 ? Color.blue : Color("Silver").opacity(0.7))
                        .font(.caption)
                        .fontWeight(.bold)
                        .clipShape(Rectangle())
                        .onTapGesture {
                            withAnimation(.default) {
                                self.selection = 2
                            }
                        }
                }
            }

            PageView(selection: $selection,indexdisplayMode: .never,indexBackgrounddisplayMode: .never) {
                vstack {
                    FirstView()
                }
                .tag(0)

                vstack {
                    SecondView()
                }
                .tag(1)

                vstack {
                    ThirdView()
                }
                .tag(2)
            }
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。