我在Stack上四处寻找解决方案,发现了很多结果,但我仍然无法解决我的问题,主要是因为我正在使用一个CCNode,而不是一些UIView。
无论如何,我的CCButton在没有UITapGestureRecognizer
的情况下可以查找,但当我实现它时,它会覆盖我的按钮按压。显然我想避免这种情况。
我的代码在下面。我的滑动手势非常有效,但敲击会干扰我的按钮。我不确定我是否将手势识别器添加到了错误的视图中,因为- (BOOL)gesturerecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
从不运行,这就是我将在异常中放置的位置。如果有人能给我一些关于如何解决这个问题的代码/想法,我们将不胜感激,谢谢!
-(void)didLoadFromCCB
UITapGestureRecognizer * gridTapped = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(gridTapped)];
[[[CCDirector sharedDirector] view] addGestureRecognizer:gridTapped];
//this works totally fine
UISwipeGestureRecognizer * swipeLeft= [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeLeft)];
swipeLeft.direction = UISwipeGestureRecognizerDirectionLeft;
[[[CCDirector sharedDirector] view] addGestureRecognizer:swipeLeft];
}
-(void)gridTapped {
//this works!
CCLOG(@"Grid tapped");
}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
//This never runs
CCLOG(@"gesture recognized");
if ((touch.view == mainMenuButton)) {
return NO;
}
return YES;
}
尝试设置UIMapGestureRecognizer委托:
gridTapped.delegate = self;
您需要将VC类声明为实现<UITapGestureRecognizerDelegate>