gpt4 book ai didi

ios - 计算 DragGesture 的速度

转载 作者:行者123 更新时间:2023-11-29 05:34:11 25 4
gpt4 key购买 nike

我想提取 DragGesture 的速度以用于 Spring 动画的initialVelocity 参数。我正在尝试创建一个可移动的卡片,它具有像 Apple map 应用程序中那样的响应式 Spring 动画。

我尝试通过将拖动平移的高度除以拖动手势所用的总时间来计算速度。

v_abs = abs(Double(drag.translation.height / CGFloat(drag.time.timeIntervalSinceNow)))

问题在于,当用户开始拖动时,他们可能会在轻弹和释放之前减慢拖动速度,这会导致由于经过很长一段时间而导致速度非常慢。如果可能的话,我只想使用拖动手势最后几毫秒的数据来计算速度。

最佳答案

您只需使用 DragGesture.Value 已提供的 predictedEndLocation 即可计算隐含速度,而无需保持中间状态:

DragGesture()
.onChanged { value in
// Do something
}
.onEnded { value in
let velocity = CGSize(
width: value.predictedEndLocation.x - value.location.x,
height: value.predictedEndLocation.y - value.location.y
)

// Example

if velocity.height > 500.0 {
// Moving down fast
}
}

关于ios - 计算 DragGesture 的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57222885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com