4

这是我的小情况。我正在使用uipanGesture移动一个ccsprite。我可以将它全部移到没有问题的位置,并且我可以使用uitapgesture拍摄屏幕上的一个点。UIPanGestureRecognizer和UITapGestureRecognizer同时

-(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"); 
} 

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

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

但是,当我不平移和只使用uitapgesture射击,当我烧我无法平移...我认为这正在发生的原因是因为它的注册最后自来水作为 recognizer.state == UIGestureRecognizerStateBegan自我不是在摇摆。

任何人知道一种方法,我可以挖掘,而不是注册水龙头作为if (recognizer.state == UIGestureRecognizerStateBegan

如果(location.x < winSize.width/2),但它没有工作,我试过。

+0

我们可以看到你创建的手势? –

+0

我在这个例子中创建了两个地方,我在init中创建了它,但是我之前在应用程序委托中创建了它们。 – ifrapps

回答

1

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

所以我认为你想要你的[requireGestureToFail:]。

+0

今天晚上我要试试这个让你知道它是否有效的 – ifrapps

+0

试过它没有工作 – ifrapps

+0

我做了一个教程,而后来http://www.scott-sherwood.com/?p=256和本教程我希望你的平底锅和水龙头的工作方式能够让捏手和旋转手势相互吻合,看看它是否有帮助。同时,我会尝试创建一个展示你想要的行为的小型项目,看看是否有一些内在的使用水龙头和锅在一起,造成奇怪。 –

0

我不知道,如果有人有兴趣在这个职位,但我没有用解决问题就像90% 以下

for(int i=0; i<[recognizer numberOfTouches]; i++){ 
    CGPoint pt = [recognizer locationOfTouch:i inView:recognizer.view]; 
    pt = [[CCDirector sharedDirector]convertToGL:pt]; 
    pt = [self convertToNodeSpace:pt]; 

    if (i==0) { 
    //stuff 
    } 
相关问题