我正在创建一个工具提示系统。
如果用户触摸工具提示之外的任何地方,我想关闭工具提示。
我希望这样在工具提示之外的触摸既可以消除工具提示,又可以激活用户点击的任何控件。 (因此,您可以打开一个工具提示,然后仍然单击工具提示外部的按钮,并在第一次点击时激活它。)
为此,我有一个不可见的视图来处理点击手势并消除工具提示,但我不知道如何使 SwiftUI 不拦截并取消点击手势。在网络上,相当于不打电话event.stopPropagation()
and event.preventDefault()
, or 呼叫超级touchesBegan:在 UIKit 中 https://developer.apple.com/documentation/uikit/uiresponder/1621142-touchesbegan.
有任何想法吗?
这是可能方法的演示。使用 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
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)