【发布时间】:2019-07-26 15:16:33
【问题描述】:
我想提取 DragGesture 的速度以用于弹簧动画的 initialVelocity 参数。我正在尝试创建一个可移动的卡片,它具有类似 Apple Maps 应用程序中的响应式弹簧动画。
我尝试通过将拖动平移的高度除以拖动手势的总时间来计算速度。
v_abs = abs(Double(drag.translation.height / CGFloat(drag.time.timeIntervalSinceNow)))
问题是当用户开始拖动时,他们可能会在轻弹和释放之前减慢拖动速度,这会导致速度非常慢,因为已经过了很长一段时间。如果可能的话,我只想使用拖动手势最后几毫秒的数据来计算速度。
【问题讨论】:
-
这无关。我正在使用 DragGesture,它是 SwiftUI 的一部分。我没有使用 UIPanGestureRecognizer。