如何解决 SwiftUI Tap 冲突?
Posted
技术标签:
【中文标题】如何解决 SwiftUI Tap 冲突?【英文标题】:How to resolve SwiftUI Tap Conflict? 【发布时间】:2020-07-16 01:16:03 【问题描述】:当我使用 SwiftUI 制作视图时,我无法使点击事件工作。 我的代码如下:
VStack
HStack
//SomeView...
.onTapGesture
print("HStack Tap Work")
.onTapGesture
print("VStack Tap Work")
当我点击 VStack 的其他区域(期望 HStack)时,我只想打印“VStack Tap Work”,当我点击 HStack 时打印“HStack Tap Work”。
但它总是打印“VStack Tap Work”。那么我该如何解决呢?
【问题讨论】:
【参考方案1】:处理顺序可能取决于实际视图层次结构(因为堆栈通常围绕内容紧密),因此请尝试按优先级分隔手势,例如
HStack
//SomeView...
.highPriorityGesture(TapGesture().onEnded // high priority !!
print("HStack Tap Works")
)
【讨论】:
以上是关于如何解决 SwiftUI Tap 冲突?的主要内容,如果未能解决你的问题,请参考以下文章
微信小程序-双击长按longtap事件与tap事件冲突的解决办法
Swiftui 如何在 foreach 循环中对整行使用 Tap Gesture