当工具栏超级视图具有UITapGestureRecognizers时,UIBarButton不工作?
问题描述:
我正在经历这种奇怪的行为。当工具栏超级视图具有UITapGestureRecognizers时,UIBarButton不工作?
我创建了一个干净的项目(视图模板),添加一个带有按钮的工具栏并将其与一个动作挂钩。它的工作原理;) 但是,当我添加一个UITapGestureRecognizer到我的viewcontroller视图的工具栏按钮停止工作。 (它被按下,但它的动作未被调用) 当我添加UITapGestureRecognizer时,仅调用链接到它的动作。这就像uitapgesture识别器视图隐藏工具栏,但实际上不是。
这里发生了什么?我错过了什么?
- (IBAction)itemAction{
NSLog(@"%s", _cmd);
self.view.backgroundColor = [UIColor whiteColor];
}
- (void) tapAction{
NSLog(@"%s", _cmd);
self.view.backgroundColor = [UIColor greenColor];
}
- (void)viewWasTapped:(UITapGestureRecognizer *)recognizer{
if (recognizer.state == UIGestureRecognizerStateRecognized) {
[self tapAction];
}
}
- (void)viewDidLoad {
[super viewDidLoad];
UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewWasTapped:)];
[tapGestureRecognizer setNumberOfTapsRequired:1];
[self.view addGestureRecognizer:tapGestureRecognizer];
[tapGestureRecognizer release];
}
编辑:项目源可以从here
由于事先下载的任何建议
伊格纳西奥
答
我终于找到了原因:
tapGestureRecognizer.cancelsTouchesInView = NO;
在哪里的困惑?您的轻击手势识别器正在按按钮之前处理轻击。 – 2011-02-15 03:09:47