【问题标题】:onTapGesture not working with padding modifier in SwiftUIonTapGesture 不适用于 SwiftUI 中的填充修饰符
【发布时间】:2021-02-11 01:28:15
【问题描述】:

由于某种原因,当我添加填充修饰符时,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()
                    }
                }
            }

【问题讨论】:

  • 适用于 Xcode 12.1 / iOS 14.1。您使用哪个环境?你在哪里复制的?
  • 我同意上面的评论——平台在这里真的很重要。 SwiftUI onTapGesture 在 macOS 上几乎完全崩溃

标签: ios swift swiftui


【解决方案1】:

它适用于 Xcode 12.3。我认为您的 Xcode 版本导致了它。不过,你可以试试:.contentShape(Rectangle())


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    • 1970-01-01
    • 2020-11-06
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多