【发布时间】:2019-11-11 19:16:11
【问题描述】:
所以我有一个添加了 DragGesture 的 Rectangle,并且想要跟踪手势的开始、更改和结束。问题是当我在执行手势时将另一根手指放在 Rectangle 上时,第一个手势停止调用 onChange 处理程序并且不会触发 onEnded 处理程序。 此外,处理程序不会为第二根手指触发。
但是,如果我在没有移除前两个手指的情况下放置第三根手指,该手势的处理程序就会开始触发(依此类推,偶数按下会取消奇数)
这是一个错误吗?有没有办法检测到第一个手势被取消了?
Rectangle()
.fill(Color.purple)
.gesture(
DragGesture(minimumDistance: 0, coordinateSpace: .local)
.onChanged() { event in
self.debugLabelText = "changed \(event)"
}
.onEnded() { event in
self.debugLabelText = "ended \(event)"
}
)
【问题讨论】:
-
看起来像一个错误
-
好像是奇数的手指会触发
onEnded,偶数的不会……刚用4根手指和5根手指测试过 -
@krjw,没错!
-
这个答案是否有助于解决问题:stackoverflow.com/questions/60253490/…