加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 17:30:16 所属栏目:百科 来源:网络整理
导读:我在onEnter方法中添加以下代码. doubleTapRecognizer_ = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)]; doubleTapRecognizer_.numberOfTapsRequired = 2; doubleTapRecognizer_.cancelsTouchesInView = NO; [
我在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层)识别手势,然后将事件传递给适当的节点,或者简单地忽略它,这是一个很好的设计.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读