2

我正在使用 UITapGestureRecognizer 和 UIButton 在 iPhone 应用程序中工作。我在 self.view 中添加了 UITapGestureRecognizer。当我单击 UIButton 时,它不会调用它的动作,仅调用 Tapgesture 动作。如何解决这个问题?有人可以帮忙解决这个问题吗?

这是我的代码-ViewDidLoad

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapFrom:)];
    [self.view addGestureRecognizer:tapRecognizer];
    [tapRecognizer release];

UIButton *infoButton1 = [UIButton buttonWithType:UIButtonTypeInfoDark];
    infoButton1.frame = CGRectMake(0, 5, 30, 30);
    infoButton1.tag = 1;
    infoButton1.opaque = YES;
    [infoButton1 addTarget:self action:@selector(infoAlert:) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside];
    [toolBarView1 addSubview:infoButton1]; 

-(void) infoAlert:(id) sender
{
    NSLog(@"Get Info Alert"); // Here the control not calling..
}


-(void)handleTapFrom:(UITapGestureRecognizer *)recognizer
{    
    NSLog(@"%@",[NSString stringWithFormat:@"%d", recognizer.view.tag]); // Whenever i touch the button this method only calling.
}

请帮我解决这个问题。提前致谢。

4

2 回答 2

3

为什么没有人使用堆栈溢出或谷歌的精彩搜索?

这是你的答案:https ://stackoverflow.com/a/3348532/312312

从同一个线程来看,这似乎是一个更简单的解决方案: https ://stackoverflow.com/a/8891030/312312

于 2012-07-24T13:27:54.947 回答
0

这是最好的解决方案:在您声明您的 tapRecognizer 之后(我指的是您的问题代码)添加以下内容:

  tapRecognizer.cancelsTouchesInView = NO;
于 2015-05-23T16:11:50.140 回答