gpt4 book ai didi

ios - 在 SwiftUI 中,如何执行手势但将手势转发到它后面的 View ?

转载 作者:行者123 更新时间:2023-12-04 12:39:16 25 4
gpt4 key购买 nike

我正在创建一个工具提示系统。

如果用户触摸工具提示之外的任何地方,我想关闭工具提示。

我希望这样一来,在工具提示之外的触摸既可以消除工具提示,又可以激活用户点击的任何控件。 (因此,您可以打开工具提示,然后单击工具提示外的按钮并在第一次点击时激活它。)

为此,我有一个不可见的 View 来处理点击手势并关闭工具提示,但我不知道如何让 SwiftUI 不拦截和取消点击手势。在网络上,这相当于不拨打 event.stopPropagation()event.preventDefault() , 或 calling super in touchesBegan: in UIKit .

有任何想法吗?

最佳答案

这是可能的方法的演示。使用 Xcode 11.4/iOS 13.4 测试

struct ContentView: View {
var body: some View {
VStack {
Button("Button") { print("> button tapped")}
}
.frame(width: 200, height: 200)
.contentShape(Rectangle()) // makes all area tappable
.simultaneousGesture(TapGesture().onEnded({
print(">>> tooltip area here")
}))
.border(Color.red) // just for demo show area
}
}

关于ios - 在 SwiftUI 中,如何执行手势但将手势转发到它后面的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61181162/

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