gpt4 book ai didi

ios - 使用 UIPanGestureRecognizer 计算轻弹后 UIView 的最终位置

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:35:43 25 4
gpt4 key购买 nike

我有一个圆形的 UIView,我可以使用 UIPanGestureRecognizer 在屏幕上移动它。在 .Changed 期间,UIView 随用户的手指移动。我没有'.Ended'。我希望用户能够轻弹 UIView,并让它在用户抬起手指后继续其路径。路径的长度将取决于锅的速度。

这可能与我当前的 .Changed 实现有关吗?如何计算 UIView 的最终位置?

最佳答案

查看 official documentation CGAffineTransform,你可以找到以下段落:

vector

让我们将其转化为代码:

let transform = self.view.transform
let xPosition = transform.a * transform.tx + transform.c * transform.ty + transform.tx
let yPosition = transform.b * transform.tx + transform.d * transform.ty + transform.ty
let targetTransform = self.transform(view: self.view,
for: CGPoint(x: xPosition, yPosition))

然后我们可以将计算出的 CGAffineTransform 应用到我们的 UIView:

UIView.animate(withDuration: 0.2) {
self.view.transform = targetTransform
}

请记住,动画持续时间并未考虑当前速度。如需更自然的行为,请考虑查看 UIKit Dynamics .

关于ios - 使用 UIPanGestureRecognizer 计算轻弹后 UIView 的最终位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31619131/

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