我有一个UIView
和一个pan gesture
。它只能水平滑动。我希望此视图在向右滑动时停止在某个位置。
[当前,如果缓慢/正常滑动,则按预期工作。但是,如果滑动速度快于平均速度/非常快,则视图将在所需的点之后停止一定距离。
我在guard
开关内使用UIPanGestureRecognizer.State
语句,如下所示:
case .changed:
guard myView.frame.origin.x < 200 else { return }
//do magic
因此,如果滑动速度更快,则视图可能会停在x = 210
或221
等位置。这取决于您实际滑动的速度。
您是否知道如何在所需的点处停止视图,以便用户甚至无法滑动至200 + 1
点的任何技术?
当滑动速度很快时,transition.x值可能会跳跃,在这种情况下,您似乎无法正确处理更新。例如,origin.x从250跳到190,看起来好像您忽略了此更新。我建议您将防护罩内的myView.frame.origin.x设置为200,以免卡在中间。如果这样做没有帮助,请提供更多代码以使问题更加清楚。