为什么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];
答案 0 :(得分:1)
你的手势很可能互相矛盾。如果您删除滑动手势它是否有效呢?
您可能希望查看此委托回调并返回YES:
– gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
答案 1 :(得分:0)
“简单手势识别器”的Apple示例代码提供了轻触,滑动和旋转手势识别器的示例,所有三种类型都在一个视图中工作。看看这个。示例代码使用故事板来完全配置视图及其控制器,因此代码有点稀疏。但您应该能够将编码配置与Xcode的“属性检查器”和“连接检查器”进行比较,以确定您的差异。
答案 2 :(得分:0)
删除以下设置:
tapR.numberOfTaps /默认情况下触摸它已经为1。
尝试实现委托方法并检查它们是否被解雇了?
tapR.delegate = self;
- (BOOL)gestureRecognizerShouldBegin:sender { return YES; }
您还可以提供有关视图结构的一些详细信息吗?例如,某些其他手势(滚动视图或其他内容)可能是您滑动不触发的原因。