2013-02-21 68 views
0

为什么swipeRightL开火事件和tapR不是?UITapGestureRecognizer未开火

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]; 
+0

你确定它不火?你有没有在两个目标动作中加入一些'NSLog'跟踪?你的观点的布局是什么? – sergio 2013-02-21 22:47:56

+0

我做到了。它只是不开火。我的UIWeb子视图超出了主视图的界限,但我认为这不是问题,因为刷卡工作正常。 – Jacob 2013-02-22 15:17:48

+0

您是否在位于界限内或界外的视图部分轻敲?或者在两种情况下都不起作用?我正确阅读这个:你正在添加子视图到'UIWebView',然后添加手势识别器... – sergio 2013-02-22 15:29:28

回答

1

这可能是你的手势互相冲突。如果你删除了滑动手势,它会工作吗?

你可能想看看这个委托回调并返回YES:

– gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 
+0

添加tapR.delegate = self并在回调中返回YES后,onTap函数现在正在执行。 – Jacob 2013-02-26 20:24:31

0

“简单的手势识别器”的苹果示例代码prodives抽头,轻扫的实例,并与所有三种类型的一个视图内的工作旋转手势识别。一探究竟。示例代码使用故事板完全配置视图及其控制器,因此代码有点稀疏。但是您应该能够将您的编码配置与Xcode的“属性检查器”和“连接检查器”进行比较以确定您的差异。

0

删除设置,如:

tapR.numberOfTaps /倒是它已经默认值为1。

尝试实施委托方法并检查他们是否被解雇?

tapR.delegate = self; 

- (BOOL)gestureRecognizerShouldBegin:sender { return YES; }

您也可以提供有关意见结构的一些细节?例如,一些其他的手势(在滚动视图或其他)可以是你的刷卡没有开火的原因。