Objective c UITapGestureRecognitor未启动

Objective c UITapGestureRecognitor未启动,objective-c,cocoa-touch,uigesturerecognizer,Objective C,Cocoa Touch,Uigesturerecognizer,为什么swipeRightL触发事件而tapR不是 UISwipeGestureRecognizer *swipeRightL=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeLeft)]; swipeRightL.numberOfTouchesRequired=1; swipeRightL.direction=UISwipeGestureRecognizerDirectionLeft; [se

为什么
swipeRightL
触发事件而
tapR
不是

UISwipeGestureRecognizer *swipeRightL=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeLeft)];
swipeRightL.numberOfTouchesRequired=1;
swipeRightL.direction=UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:swipeRightR];
[self.view addGestureRecognizer:swipeRightL];
UITapGestureRecognizer *tapR=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(onTap)];
tapR.numberOfTapsRequired=1;
tapR.numberOfTouchesRequired=1;
[self.view addGestureRecognizer:tapR];
“简单手势识别器”的苹果示例代码提供了在一个视图中使用所有三种类型的点击、滑动和旋转手势识别器的示例。过来看。示例代码使用故事板完全配置视图及其控制器,因此代码有点稀疏。但是,您应该能够将编码配置与Xcode“属性检查器”和“连接检查器”进行比较,以确定您的差异。

删除如下设置:

tapR.numberOfTaps/touchs默认为1

尝试实现委托方法并检查它们是否被激发

tapR.delegate = self;
-(BOOL)手势识别器应该开始:发送者{返回是;}


您还可以提供一些有关视图结构的详细信息吗?例如,某些其他手势(在滚动视图或其他内容中)可能是您的滑动未触发的原因。

您的手势可能相互冲突。如果你取消了刷卡手势,那么它会起作用吗

您可能希望查看此委托回调并返回YES:

– gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:

你确定它不会开火吗?您是否在两个目标操作中添加了一些
NSLog
跟踪?您的视图布局是什么?是的。它就是不点火。我有跨越主视图边界之外的UIWeb子视图,但我不认为这是一个问题,因为滑动正在工作。您是点击位于边界之内还是之外的视图部分?或者在这两种情况下都不起作用?我读得对吗:您正在将子视图添加到
UIWebView
中,然后将手势识别器添加到其中…添加tapR.delegate=self并在回调中返回YES后,onTap函数现在正在执行。