首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在iOS中,平移和滑动有什么不同?

在iOS中,平移和滑动有什么不同?
EN

Stack Overflow用户
提问于 2012-03-28 06:27:53
回答 3查看 66.2K关注 0票数 134

听起来很简单..按住触控板,移动手指,松开。但不知何故,swipe并未被触发(而是触发了平移)

代码语言:javascript
复制
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] 
      initWithTarget:v action:@selector(handleSwipe:)];
swipeGesture.direction= UISwipeGestureRecognizerDirectionUp;
[v addGestureRecognizer:swipeGesture];

Pan由上面的序列识别。

代码语言:javascript
复制
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] 
      initWithTarget:v action:@selector(handlePan:)];
[v addGestureRecognizer: panGesture];

如果pan被注释,swipe将被相同的手势识别。在此,有两个问题:

  • What是pan和swipe?
  • How之间的区别人们可以在simulator?

iPhone上模拟滑动

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-28 07:45:43

根据定义,滑动手势也必须是平移手势--两者都涉及触摸点的平移移动。不同之处在于识别器的语义:平移识别器寻找平移移动的开始,并继续报告随着时间的推移在任何方向上的移动,而滑动识别器会即时判断用户的触摸是否在所需方向上线性移动。

默认情况下,没有两个识别器会识别相同的手势,因此在平移和滑动之间存在冲突。最有可能的是,你的pan识别器“赢得”了冲突,因为它的手势更简单/更通用:刷卡就是刷屏,但刷屏可能不是刷屏,所以pan首先识别并排除其他识别器。

您应该能够使用委托方法gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:来解决此冲突,或者通过使用requireGestureRecognizerToFail:使pan识别器依赖于swipe识别器而无需委托。

冲突解决后,您应该能够通过快速拖动鼠标来模拟一个手指滑动。(尽管鼠标比手指更精确,但它比在设备上做真正的事情要更挑剔一些。)按住Option和Shift键可以实现两指平移/滑动。

票数 237
EN

Stack Overflow用户

发布于 2015-01-13 12:35:48

滑动手势仅在您向特定方向拖动手指时有效(向上滑动、向下滑动、向左滑动、向右滑动)。例如,表格视图控制器中的可滑动单元格。

当你向任何方向拖动手指时,平移手势都会起作用。你可以给它加速或减速。FOr例如,将对象从一个位置移动到另一个位置或旋转微调器。

票数 27
EN

Stack Overflow用户

发布于 2016-06-23 05:30:43

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

:在同一大视图中移动方向

:在多个视图之间切换

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9898627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档