0

为什么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];
4

3 回答 3

1

您的手势可能相互冲突。如果您删除滑动手势,它会起作用吗?

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

– gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
于 2013-02-22T21:36:49.450 回答
0

“简单手势识别器”的 Apple 示例代码提供了点击、滑动和旋转手势识别器的示例,所有三种类型的手势识别器都在一个视图中工作。看看这个。示例代码使用故事板来完全配置视图及其控制器,因此代码有点稀疏。但是您应该能够将您的编码配置与 Xcode 的“属性检查器”和“连接检查器”进行比较,以确定您的差异。

于 2013-02-21T23:15:14.870 回答
0

删除设置,如:

tapR.numberOfTaps/Touches 默认已经是 1。

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

tapR.delegate = self;

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

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

于 2013-02-21T23:36:18.193 回答