在 iOS 中,Pan 和 Swip 的区别是什么?

听起来很简单. . 握住 Trackpad,移动手指,释放. . 但是不知怎么的滑动没有被触发(反而触发了平底锅)

UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc]
initWithTarget:v action:@selector(handleSwipe:)];
swipeGesture.direction= UISwipeGestureRecognizerDirectionUp;
[v addGestureRecognizer:swipeGesture];

而是由上面的序列识别 Pan。

UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc]
initWithTarget:v action:@selector(handlePan:)];
[v addGestureRecognizer: panGesture];

如果“ pan”被注释了,那么同样的手势可以识别滑动. . 这里有两个问题:

  • 那么平底锅和刷子有什么区别呢?
  • 如何在 iPhone 模拟器上模拟滑动?
68012 次浏览

按照定义,滑动手势必然也是一种平移手势——两者都涉及到触点的平移运动。不同之处在于识别器的语义: 平移识别器寻找平移运动的开始,并随着时间的推移继续报告任何方向的运动,而滑动识别器会立即决定用户的触摸是否沿着所需的方向线性移动。

默认情况下,没有两个识别器会识别相同的手势,所以在摇盘和滑动之间存在冲突。最有可能的情况是,您的泛识别器“赢得”了冲突,因为它的姿势更简单/更一般: 滑动是一个泛,但泛可能不是一个滑动,所以泛识别器首先识别并排除其他识别器。

您应该能够使用委托方法 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:解决这种冲突,或者也许不需要委托,方法是使泛识别器依赖于带有 requireGestureRecognizerToFail:的滑动识别器。

冲突解决后,您应该能够通过快速拖动鼠标来模拟单指滑动。(尽管鼠标比你的手指更精确,但它比在设备上做实际操作要稍微麻烦一些。)两指平移/滑动可以通过按住 Option & Shift 键来完成。

滑动手势将工作时,你拖动你的手指只在某些方向(滑动向上,滑动向下,滑动向左,滑动向右)。例如,表视图控制器中的可滑动单元格。

当你向任何方向拖动手指时,“潘氏手势”都会起作用。你可以给它加速或减速。例如,将一个物体从一个地方移动到另一个地方,或者旋转一个旋转器。.

根据 http://hammerjs.github.io/,我认为区别在于:

  • 在同一个大视野中移动方向
  • 在多个视图之间切换

手势是一样的,都用一个手指移动。