Ios UIGestureRecognitors干扰UIToolbar?
我正在开发一个开源杂志引擎,您可以在GitHub上查看: 我在一个名为MenuPanel的UIView中设置了一个UIToolbar。出于某种原因,UIToolbar中的UIBarButtonims没有正确调用其操作。以下是我用于按钮的语法:Ios UIGestureRecognitors干扰UIToolbar?,ios,open-source,Ios,Open Source,我正在开发一个开源杂志引擎,您可以在GitHub上查看: 我在一个名为MenuPanel的UIView中设置了一个UIToolbar。出于某种原因,UIToolbar中的UIBarButtonims没有正确调用其操作。以下是我用于按钮的语法: UIBarButtonItem *homeItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"home.png"] style:UIBarButtonItemStyleP
UIBarButtonItem *homeItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"home.png"] style:UIBarButtonItemStylePlain target:self action:@selector(buttonClicked:)];
发生的情况是,无论我在屏幕上单击什么位置,都会调用主UIViewController中声明的UIAPTgestureRecognitor。这将在我的主UIViewController中的这段代码中获得设置:
- (void)setupGestureRecognizers {
//NSLog(@"setupGestureRecognizer NEW");
UISwipeGestureRecognizer *swipeRecognizer;
swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
swipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:swipeRecognizer];
[swipeRecognizer release];
swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
swipeRecognizer.direction = UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:swipeRecognizer];
[swipeRecognizer release];
swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
swipeRecognizer.direction = UISwipeGestureRecognizerDirectionUp;
[self.view addGestureRecognizer:swipeRecognizer];
[swipeRecognizer release];
swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)];
swipeRecognizer.direction = UISwipeGestureRecognizerDirectionDown;
[self.view addGestureRecognizer:swipeRecognizer];
[swipeRecognizer release];
UITapGestureRecognizer *tapRecognizer;
tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[self.view addGestureRecognizer:tapRecognizer];
[tapRecognizer release];
}
我确信我在做这件事的时候,在概念上犯了一些相当基本的错误。有人能告诉我如何解决这个问题吗
作为参考,您可以在此处查看我的主DefragViewController:UIViewController:
我的菜单面板:UIView在此:
gist.github.com/1431728我解决了自己的问题 我必须告诉我的UIViewController忽略来自任何UIToolbar的触摸,如下所示:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
//ignore any touches from a UIToolbar
if ([touch.view.superview isKindOfClass:[UIToolbar class]]) {
return NO;
}
return YES;
}
欢迎来到堆栈溢出!确保并将你的答案标记为已接受,以便其他人知道有解决方案。