SwiftUI TapGesture onStart / TouchDown
Posted
技术标签:
【中文标题】SwiftUI TapGesture onStart / TouchDown【英文标题】: 【发布时间】:2020-05-12 12:33:25 【问题描述】:我在 MacOS 的 SwiftUI 中使用 TapGesture。 TapGesture 仅在 TouchInsideOut
事件中被识别,当再次释放新闻时。我想在触地时调用一个动作,在结束手势时调用另一个动作。
有一个可用于 TapGesture 的 onEnded
状态,但没有 onStart
。
MyView()
.onTapGesture
//Action here only called after tap gesture is released
NSLog("Test")
是否有机会检测到触摸下降和触摸释放?
我也尝试使用LongPressGesture
,但无法弄清楚。
【问题讨论】:
【参考方案1】:如果使用纯 SwiftUI,那么现在只能间接使用。
这是一种方法。使用 Xcode 11.4 测试。
注意:下面的minimumDistance: 0.0
很重要!!
MyView()
.gesture(DragGesture(minimumDistance: 0.0, coordinateSpace: .global)
.onChanged _ in
print(">> touch down") // additional conditions might be here
.onEnded _ in
print("<< touch up")
)
【讨论】:
有效!!谢谢。我尝试了同样的方法,但使用了 LongPress,但那里的 onEnded 被称为错误。谢谢!!! 我也在使用 onHover 这个视图,但看起来两者没有一起工作。当 DragGesture 在视图上时,我可以调用任何函数吗?拖动?目前我在开始拖动时设置一个状态,然后允许我的悬停。但是没有调用悬停。我需要检查是否在拖动过程中将鼠标悬停在视图上。 你知道当视图接收到这个 DragGesture 时我可以调用的函数吗? @davidev,有几个类似的帖子。例如this 和this 非常感谢。你真是个专家。我在这里用你的答案想通了:***.com/questions/58900316/…以上是关于SwiftUI TapGesture onStart / TouchDown的主要内容,如果未能解决你的问题,请参考以下文章
TapGesture 在 Xcode 11.0 Beta 中不起作用