@H_502_2@
这是我的小情况.我正在用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:].
@H_502_2@