1
@Namespace var ns

    var body: some View {
        ZStack {
            Color(.black)
            TabView {
                ForEach(0..<5) { i in
                    Text("item \(i)")
                        .foregroundColor(.white)
                        .matchedGeometryEffect(id: i, in: ns)
                        .frame(maxWidth: .infinity)
                }
            }
                .tabViewStyle(PageTabViewStyle(indexDisplayMode: .always))

        }
    }

当我试图给每个 TabView 项目一个效果 id 时,它会抱怨Multiple inserted views in matched geometry group Pair<Int, ID>(first: 0, second: SwiftUI.Namespace.ID(id: 180)) have isSource: true, results are undefined.

为 PageTabView 中的项目分配 id 的正确方法是什么matchedGeometryEffect,以便我可以像 iOS 照片应用程序一样放大和缩小过渡?

还是 SwiftUI 的 bug?

4

0 回答 0