onTapGesture 无法在 SwiftUI 中使用填充修饰符

c0n*_*man 1 ios swift swiftui

由于某种原因,当我添加填充修改器时,onTapGesture 修改器不起作用。如果您看下面,您会看到我尝试添加填充修饰符的 3 个位置。如果我注释掉/删除填充修改器,onTapGesture 修改器可以正常工作,但如果我取消注释任何这些填充,onTapGesture 就会停止工作。我不知道这里发生了什么事。

if noninitialRun == false {
                ZStack(alignment: .topTrailing) {
                    Walkthrough()
                        //.padding(-16)
                    
                    VStack {
                        Image(systemName: "xmark")
                            //.padding()
                            .onTapGesture {
                                print("tap")
                                noninitialRun = true
                                UserDefaults().setValue(true, forKey: "notFirstRun")
                        }
                        //.padding()
                    }
                }
            }
Run Code Online (Sandbox Code Playgroud)

bat*_*rbb 7

它在 Xcode 12.3 上运行良好。我认为是你的 Xcode 版本造成的。但尽管如此,您可以尝试: .contentShape(Rectangle())


VStack {
  Image(systemName: "xmark")
  .padding()
  .onTapGesture {
    print("tap")
    noninitialRun = true
    UserDefaults().setValue(true, forKey: "notFirstRun")
  }
  .padding()
}.contentShape(Rectangle())
Run Code Online (Sandbox Code Playgroud)