@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?