UITapGestureRecognizer没有做任何事情

我有一个应用程序,显示一个文本的页面的能力,点击一个button或刷卡在视图中通过各种页面进退。 容器视图有两个附加的UISwipeGestureRecognizers,用于向左滑动并向右滑动。 没有这些手势的麻烦。 但是现在我正试图将UITapGestureRecognizer添加到另一个视图,提供类似于iBooks或Kindle应用程序的function,点击左侧返回,右侧前进。 我做的任何事情都可以让手势起火。 没有任何暗示它会被触发,即使我将手势放在最顶端的视图上并禁用其他手势。

视图控制器实现UIGestureRecognizerDelegate,但我不需要实现委托方法。 我曾尝试实施shouldReceiveTouch:没有成功。

下面是我创build并附加手势识别器的一段代码:

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

试试这个你添加手势识别器的视图:

 view.userInteractionEnabled = YES; 

你提到你已经试过这个,但是为了以防万一再次尝试。

尝试在头中使用带有<UIGestureRecognizerDelegate>的委托,然后设置委托:

 UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureTurnPage:)]; [self.view addGestureRecognizer:recognizer]; recognizer.delegate = self; [recognizer release]; 

然后执行这个方法:

 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { return YES; } 

然后使用一个debugging器或折腾一个NSLog到上面的方法,并tapGestureTurnPage:看看这些方法是否被调用。

在初始化手势的位置添加此处:

 recognizer.delegate = self; 

并添加到“自我”类中:

 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return YES; } 

这使我可以在UIWebView上识别手势,并且UIWebView仍然会响应水龙头。 (我想 – 你可能不会)