gpt4 book ai didi

macOS 上的 SwiftUI - 同时处理单击和双击

转载 作者:行者123 更新时间:2023-12-04 11:47:29 29 4
gpt4 key购买 nike

考虑 SwiftUI 中的这个 View :

struct MyView: View {
var body: some View {
Rectangle()
.fill(Color.blue)
.frame(width: 200, height: 200)
.onTapGesture {
print("single clicked")
}
}
}

现在我们正在处理单击。假设你也想处理双击,但有一个单独的回调。

您有 2 个选择:
  • 单击后添加双击处理程序 - 这根本不起作用
  • 在单击处理程序之前添加双击处理程序,这有点工作:

  • struct MyView: View {
    var body: some View {
    Rectangle()
    .fill(Color.blue)
    .frame(width: 200, height: 200)
    .onTapGesture(count: 2) {
    print("double clicked")
    }
    .onTapGesture {
    print("single clicked")
    }
    }
    }

    双击处理程序被正确调用, 但是单击处理程序在大约 250 毫秒的延迟后被调用。

    任何想法如何解决这个问题?

    最佳答案

    这是可能的方法(使用 Xcode 11.2/macOS 10.15 测试)

    struct MyView: View {
    var body: some View {
    Rectangle()
    .fill(Color.blue)
    .frame(width: 200, height: 200)
    .gesture(TapGesture(count: 2).onEnded {
    print("double clicked")
    })
    .simultaneousGesture(TapGesture().onEnded {
    print("single clicked")
    })
    }
    }

    关于macOS 上的 SwiftUI - 同时处理单击和双击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59992089/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com