Objective c 在UIScrollView中使用UISweepGestureRecognitor,可以';不检测右扫,仅检测左扫

Objective c 在UIScrollView中使用UISweepGestureRecognitor,可以';不检测右扫,仅检测左扫,objective-c,uiscrollview,uiswipegesturerecognizer,Objective C,Uiscrollview,Uiswipegesturerecognizer,我在UIScrollView中有一个UIView演示视图。我希望垂直滚动UIScroll视图,而不是水平滚动。我将UIWipegestureRecognitor添加到UIView。代码如下(这里是UIScrollView): 结果是我只能检测到左击手势,不能检测到右击手势。我的代码怎么了?谢谢。很难检测到对UIScrollView或UIWebView的刷卡。您可以在此处使用“Swipe4ScrollView”: UISweepGestureRecognitzer方向属性的默认值是UISweepG

我在UIScrollView中有一个UIView演示视图。我希望垂直滚动UIScroll视图,而不是水平滚动。我将UIWipegestureRecognitor添加到UIView。代码如下(这里是UIScrollView):


结果是我只能检测到左击手势,不能检测到右击手势。我的代码怎么了?谢谢。

很难检测到对UIScrollView或UIWebView的刷卡。您可以在此处使用“Swipe4ScrollView”:

UISweepGestureRecognitzer方向属性的默认值是UISweepGestureRecognitzerDirectionRight,因此您正在创建两个执行相同操作的识别器

这就是我解决问题的方法:

for (int i = 0; i < 2; i++) {
    UISwipeGestureRecognizer *swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(onGestureSwipe:)];
    swipeRecognizer.direction = (i == 0 ? UISwipeGestureRecognizerDirectionRight : UISwipeGestureRecognizerDirectionLeft);
    [self.tableView addGestureRecognizer:swipeRecognizer];
}
for(int i=0;i<2;i++){
UISwipeGestureRecognizer*swipeRecognizer=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(onGestureSwipe:)];
swipeRecognizer.direction=(i==0?UISwipeGestureRecognizerDirectionRight:UISwipeGestureRecognizerDirectionLeft);
[self.tableView addgesturecognizer:swipeRecognizer];
}

也许
self
这是视图控制器?self这是UIScrollView的子类。我使用.xib文件。这个子类和.xib绑定在一起。为什么要添加刷卡识别器呢?如果不希望滚动视图水平滚动,则应将contentSize指定为0宽度(或小于视口宽度)。
for (int i = 0; i < 2; i++) {
    UISwipeGestureRecognizer *swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(onGestureSwipe:)];
    swipeRecognizer.direction = (i == 0 ? UISwipeGestureRecognizerDirectionRight : UISwipeGestureRecognizerDirectionLeft);
    [self.tableView addGestureRecognizer:swipeRecognizer];
}