当发送者的状态开始时,我正在使用UIPanGestureRecognizer处理事件。在这种状态下,我测量速度和平移。我总是得到非零速度。翻译的符号通常与velocty相同(翻译是一个很小的非零数字),但有时translaton等于0。为什么?
我已经在装有iOS 11的iPhone 7上安装了它。
答案 0 :(得分:0)
这是因为平移手势识别器在检测到移动时便开始识别手势。屏幕上的第一触摸还不是平移,只是触摸。手指必须至少移动一点,才能被视为平底锅。如果它在一个方向上移动了一点点,速度也将在那个方向上
docs说:
平移手势是连续的。当允许的最小手指数(minimumNumberOfTouches)移动到足以被视为平移时,它开始(UIGestureRecognizer.State.began)。
(重点是我)
如果您将手指向一个方向移动,然后返回其原始位置,则平移可以为0,并且总移动量足以使UIPanGestureRecognizer视为平移。