我在我的应用程序中创建了一个视图,我再次创建了十个视图,如网格,我在10个视图上添加了UITapGestureRecogniser,如果用户点击网格中的一个视图,我将调用基于其标记值的方法我将创建一个特定类的新视图实例。但是如果用户一次点击两个视图或者在几分之一秒的时间点上,我会遇到问题,那么该方法被调用两次。它在我的内部创建问题application.i需要解决方案我没有得到任何解决方案该怎么做。任何人都知道这个句柄请尽快帮助我。
谢谢和问候 swathi
答案 0 :(得分:0)
我只是创建一个布尔值,在这些视图调用的每个方法中都设置为NO。
在方法结束时,将其设置为YES
-(void)view1tapped{
BOOL shouldRecognizeTap = enabled;
self.enabled = NO;
if (shouldRecognizeTap){
// do your stuff here
}
self.enabled = YES;
}
-(void)view2tapped{
BOOL shouldRecognizeTap = enabled;
self.enabled = NO;
if (shouldRecognizeTap){
// do your stuff here
}
self.enabled = YES;
}
另外,在你的gestureRecognizer委托方法中,我希望你正在检查这样的识别器状态
-(void) handleTapGesture:(UIGestureRecognizer *) sender {
if (sender.state != UIGestureRecognizerStateEnded) // <---
return;
sender.enabled = NO // (or disable all the other gesture recognizers).
// do your stuff here
sender.enabled = YES;
}