uiview – 将多个UITapGestureRecognizers添加到单个视图(Cocos2d)

uiview – 将多个UITapGestureRecognizers添加到单个视图(Cocos2d),第1张

概述我在onEnter方法中添加以下代码. doubleTapRecognizer_ = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)]; doubleTapRecognizer_.numberOfTapsRequired = 2; doubleTapReco 我在onEnter方法中添加以下代码.
doubleTapRecognizer_ = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];    doubleTapRecognizer_.numberOfTapsrequired = 2;    doubleTapRecognizer_.cancelstouchesInVIEw = NO;    [[[CCDirector sharedDirector] vIEw] addGestureRecognizer:doubleTapRecognizer_];

我有这个类的多个实例,但唯一一个获取它的选择器的实例是添加的最后一个实例. UIView Class Reference让我相信可以在单个视图中添加多个UIGestureRecognizer.属性“gestureRecognizers”返回NSArray.

事实上,我已经有一个UIPanGestureRecognizer使用来自另一个类的相同视图.所以我得到至少两个UIGestureRecognizer一次工作.

您可以将多个手势识别器添加到同一视图中.您不能(轻松)做的是将相同手势识别器类型的多个实例(平移,滑动,双击等)添加到同一视图.

为什么?

因为一旦第一手势识别器识别出手势(在这种情况下双击),它就取消所有触摸事件.因此,剩余的手势识别器将永远不会完成识别,并且永远不会触发他们的事件.

您不需要多个相同类型的手势识别器.在您的情况下,一旦您收到双击事件,您可以通过双击来发出正确的对象信号.使用识别器的位置和其他属性来查找,例如,双击的精灵,然后让它做任何需要做的事情.

因此,让场景层次结构中的更高级别节点(即UI层)识别手势,然后将事件传递给适当的节点,或者简单地忽略它,这是一个很好的设计.

总结

以上是内存溢出为你收集整理的uiview – 将多个UITapGestureRecognizers添加到单个视图(Cocos2d)全部内容,希望文章能够帮你解决uiview – 将多个UITapGestureRecognizers添加到单个视图(Cocos2d)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1085973.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存