我有一个案例,其中需要在特定视图上进行双击和三连击时执行两种完全不同的行为。我使用了下面的代码来设置它:
UITapGestureRecognizer *gestureRecognizerDoubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTapDetected:)];
[gestureRecognizerDoubleTap setNumberOfTapsRequired:2];
[self.theView addGestureRecognizer:gestureRecognizerDoubleTap];
UITapGestureRecognizer *gestureRecognizerTripleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tripleTapDetected:)];
[gestureRecognizerTripleTap setNumberOfTapsRequired:3];
[self.theView addGestureRecognizer:gestureRecognizerTripleTap];
我遇到的问题是,如果三次轻击(triple-tap),那么双击方法也会被触发,因为它在第三次轻击之前检测到了两次。因此,在三次轻击时,两种方法都被调用了。
显然,这不是代码或底层SDK的固有问题,因为这是完全可预料的。但是,我想知道是否有人有巧妙的方法来防止在进行三次轻击时调用双击功能?我假设可能需要在延迟计时器上设置双击功能(等待片刻确认是否进行了三次轻击),但我不确定是否有更好的方法,或者以干净的方式设置这种功能的最佳方法?
非常感谢您提供的任何建议!