SwiftUI zIndex在ForEach内部未正确更新

SwiftUI zIndex在ForEach内部未正确更新,swift,foreach,swiftui,xcode11,Swift,Foreach,Swiftui,Xcode11,此问题发生在Xcode 11 GM中 点击视图时,颜色将变为蓝色,应更新zIndex以将其移动到前面 在上面的示例中,这很好,您永远不会看到绿色视图与蓝色视图重叠。在下面的示例中(使用ForEach),它没有正确地重新绘制,蓝色视图保留在绿色视图后面 尽管奇怪的是,如果底部示例处于不好的状态,然后触摸顶部的任何视图,那么底部会突然自我纠正 有什么想法或解决办法吗 struct ContentView: View { var body: some View { ZSta

此问题发生在Xcode 11 GM中

点击视图时,颜色将变为蓝色,应更新zIndex以将其移动到前面

在上面的示例中,这很好,您永远不会看到绿色视图与蓝色视图重叠。在下面的示例中(使用ForEach),它没有正确地重新绘制,蓝色视图保留在绿色视图后面

尽管奇怪的是,如果底部示例处于不好的状态,然后触摸顶部的任何视图,那么底部会突然自我纠正

有什么想法或解决办法吗

struct ContentView: View {

    var body: some View {

        ZStack {
            // First example, working
            TestView().position(x: 100, y: 100)
            TestView().position(x: 200, y: 200)

            // Second example, not working
            ForEach(1..<3) { i in
                TestView().position(x: 100*CGFloat(i), y: 300 + 100*CGFloat(i))
            }
        }
    }
}

struct TestView: View {

    @State var isTapped = false

    var body: some View {

        return Text("Test Test Test")
            .frame(width: 150, height: 150)
            .background(isTapped ? Color.blue : Color.green)
            .zIndex(isTapped ? 100 : 0)
            .gesture(
                TapGesture()
                    .onEnded {
                        self.isTapped.toggle()
                }
            )
    }
}
struct ContentView:View{
var body:一些观点{
ZStack{
//第一个例子,工作
TestView().位置(x:100,y:100)
TestView().位置(x:200,y:200)
//第二个例子,不起作用

弗雷奇(1..ForEach中的zIndex正在更新,但似乎该更改被ForEach阻止。更新前2个时,堆栈会立即看到更改并重新绘制整个视图。您可能可以通过从ContentView传递一个导致更新的绑定来解决此问题。我也有同样的问题。@MichaelSalmon怎么办你的意思是完全正确的?ForEach中的zIndex正在更新,但似乎ForEach正在阻止更改。当前两个更新时,堆栈立即看到更改并重新绘制整个视图。你可能可以通过从ContentView传递一个绑定来解决此问题,从而导致更新。我也有同样的问题。@Michael鲑鱼你到底是什么意思?