iPad 手势识别器 - 延迟响应

标签 ipad multi-touch gesture gesture-recognition

在我的应用程序中,我添加了 3.2 SDK 中可用的新手势识别器。一切似乎都正常工作,屏幕上的响应时间非常快。但是出于某种原因,当我添加 requireGestureRecognizerToFail 时对于我的一些手势,触发手势时有一个非常明显的延迟。下面是我用来创建手势识别器的代码片段。有谁知道为什么会有延迟以及我该如何解决?我正在使用 requireGestureRecognizerToFail防止SingleTap当用户执行 DoubleTap 时触发的手势.

 - (void)createGestureRecognizers {

 //Single Finger Double-Tap
 UITapGestureRecognizer *singleFingerDTap = [[UITapGestureRecognizer alloc]
            initWithTarget:self action:@selector(handleSingleDoubleTap:)];
    singleFingerDTap.numberOfTapsRequired = 2;
    [super addGestureRecognizer:singleFingerDTap];

 //Single Finger Tap
 UITapGestureRecognizer *singleFingerTap = [[UITapGestureRecognizer alloc]
              initWithTarget:self action:@selector(handleSingleTap:)];
    singleFingerTap.numberOfTapsRequired = 1;
 [singleFingerTap  requireGestureRecognizerToFail:singleFingerDTap];
 [self addGestureRecognizer:singleFingerTap];

 //Two Finger Pan
 UIPanGestureRecognizer *panGesture2 = [[UIPanGestureRecognizer alloc]
            initWithTarget:self action:@selector(handlePanGesture2:)];
    panGesture2.maximumNumberOfTouches = 2;
 [super addGestureRecognizer:panGesture2];

 //Single Finger Pan
 UIPanGestureRecognizer *panGesture1 = [[UIPanGestureRecognizer alloc]
             initWithTarget:self action:@selector(handlePanGesture1:)];
    panGesture1.maximumNumberOfTouches = 1;
 [panGesture1 requireGestureRecognizerToFail:panGesture2];
 [super addGestureRecognizer:panGesture1];

 [singleFingerDTap release];
 [singleFingerTap release];
    [panGesture1 release];
 [panGesture2 release];
}

最佳答案

如果您想区分单击和双击,则必须等待足够长的时间才能确定不会有第二次单击,然后才能将其称为单击。另一种方法是将所有单击操作设计为可以在检测到双击时异步取消或恢复。

例如,如果您有一个单击更改页面和一个双击缩放,那么您必须在单击时为页面更改设置动画,然后在检测到第二次点击时反转动画并进行缩放。到那时,处理单击的 View 可能已经移动。在大多数情况下,那会带来更多的麻烦和困惑,这才是值得的。

关于iPad 手势识别器 - 延迟响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3081215/

相关文章:

ios - 当键盘在 iPad 上消失时,UISearchBar 取消按钮被禁用

iphone - 观察 UITableView 中的捏合多点触控手势

html - 自定义模式的手势识别(数字)html5

ios - 由 UITapGestureRecognizer 创建的单击功能在 UIButton 上不起作用

android - 如何在 webview 上检测滑动手势

iphone - MpMovieplayer 在提醒警报弹出期间崩溃

objective-c - 更改 header 信息二进制并将其写回

iphone - 移动 x 偏移时的 CGContextDrawImage

android - Processing 可以处理多点触控吗?

ios - 2 个堆叠的多点触控 CCLayers