Swift:处理快速滑动

问题描述 投票:0回答:1

我有一个UIView和一个pan gesture。它只能水平滑动。我希望此视图在向右滑动时停止在某个位置。

[当前,如果缓慢/正常滑动,则按预期工作。但是,如果滑动速度快于平均速度/非常快,则视图将在所需的点之后停止一定距离。

我在guard开关内使用UIPanGestureRecognizer.State语句,如下所示:

case .changed:
    guard myView.frame.origin.x < 200 else { return }
    //do magic

因此,如果滑动速度更快,则视图可能会停在x = 210221等位置。这取决于您实际滑动的速度。

您是否知道如何在所需的点处停止视图,以便用户甚至无法滑动至200 + 1点的任何技术?

ios swift swipe velocity uipangesturerecognizer
1个回答
0
投票

当滑动速度很快时,transition.x值可能会跳跃,在这种情况下,您似乎无法正确处理更新。例如,origin.x从250跳到190,看起来好像您忽略了此更新。我建议您将防护罩内的myView.frame.origin.x设置为200,以免卡在中间。如果这样做没有帮助,请提供更多代码以使问题更加清楚。

© www.soinside.com 2019 - 2024. All rights reserved.