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

ios – UIPanGestureRecognizer和UITapGestureRecognizer同时出

发布时间:2020-12-14 17:21:27 所属栏目:百科 来源:网络整理
导读:这是我的小情况.我正在用uipanGesture移动一个ccsprite.我可以将它全部移动而不是问题,我在屏幕上有一个点,我可以用uitapgesture拍摄. -(void)handleTap:(UITapGestureRecognizer *)recognizer{CGPoint location = [recognizer locationInView:recognizer.vi
这是我的小情况.我正在用uipanGesture移动一个ccsprite.我可以将它全部移动而不是问题,我在屏幕上有一个点,我可以用uitapgesture拍摄.

-(void)handleTap:(UITapGestureRecognizer *)recognizer{

CGPoint location = [recognizer locationInView:recognizer.view];
location = [[CCDirector sharedDirector]convertToGL:location];
location = [self convertToNodeSpace:location];

if (location.x > winSize.width * .6 && location.y <winSize.height/2) {
  NSLog(@"fire");  
}

我添加了委托方法,所以当我平移时,我可以点击开启按钮:一切正常.

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
  return YES;
}

但是当我没有平移并且只是使用uitapgesture进行射击时,我无法平移当我开火时…我认为它发生的原因是因为它正在注册最后一个点击
Recognizer.state == UIGestureRecognizerStateBegan,因为我没有平移.

任何人都知道我可以点击的方式而不是将tap作为if注册(recognizer.state == UIGestureRecognizerStateBegan

我试过if(location.x< winSize.width / 2),但它没有用.

解决方法

您可能需要使用requireGestureRecognizerToFail设置手势识别器链.这将意味着正在执行的手势将被强制失败,优先于第二个手势.

所以我想你想要[requireGestureToFail:].

(编辑:李大同)

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

    推荐文章
      热点阅读