【问题标题】:Problem with UITapGestureRecognizer for double tap双击UITapGestureRecognizer的问题
【发布时间】:2011-05-10 14:30:42
【问题描述】:

我有两个 UITapGestureRecognizersingleTapdoubleTap 使用两个不同的操作进行了初始化。

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];
[singleTap requireGestureRecognizerToFail:doubleTap];
[doubleTap setNumberOfTapsRequired:2];
[imageView addGestureRecognizer:doubleTap];
[imageView addGestureRecognizer:singleTap];

当我在模拟器中运行我的应用程序时,单击会正确响应,但双击则不会!当我双击什么都没有发生时,我想iOS可以识别双击,因为没有调用单击的动作(由于[singleTap requireGestureRecognizerToFail:doubleTap];),但我不明白为什么它不执行@987654327的动作@。

【问题讨论】:

  • 去掉单击手势识别器还能用吗?
  • 不...我刚刚将 doubleTap 的 setNumberOfTapsREquired 更改为 3,当我双击时也没有任何反应!这很奇怪,因为在这种情况下,双击应该被识别为单击,对吧?可能是 iOS 模拟器的双击问题?
  • 永远不要相信模拟器,我会在实际设备上进行测试。

标签: ios uigesturerecognizer tap


【解决方案1】:

我认为问题在于UIImageViewUILabel 都覆盖了userInteractionEnabled 属性的默认值YES,并将其设置为NO

添加imageView.userInteractionEnabled = YES;,然后重试。

【讨论】:

    【解决方案2】:

    以下代码适用于我:

    - (void)handleTap:(UIGestureRecognizer*)gr {
        NSLog(@"----------------- tap ----------------");
    }
    - (void)handleDoubleTap:(UIGestureRecognizer*)gr {
        NSLog(@"================= double tap ============");
    }
    - (XXXView*)createXXXView {
        XXXView *view = [[[XXXView alloc] init] autorelease];
        view.xxx=...;//irrelevant
    
        UITapGestureRecognizer *dtr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];
        dtr.numberOfTapsRequired = 2;
    
        UIGestureRecognizer *tr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
    
        [tr requireGestureRecognizerToFail:dtr];
        [view addGestureRecognizer:tr];
        [view addGestureRecognizer:dtr];
    
        return view;
    }
    

    【讨论】:

      猜你喜欢
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多