touchesEnded:withEvent:如何在它发生之前解决延迟问题

时间:2010-08-19 21:23:50

标签: iphone uikit

在iPhone OS上,-touchesEnded:withEvent:当你离开手指时会快速触发,除非有拖拽。如果-touchesMoved:withEvent:已经触发,那么在你触及touchesEnded之前有大约0.6秒的延迟:withEvent:。

我在一个新项目中验证了这一点,没有scrollView,没有多点触控。

我希望用户拖动一个对象,然后在他举起手指时立即触发方法。 0.6秒的延迟是不可接受的。

有关处理此问题的任何想法吗?

编辑:我在测试项目中编写的唯一代码是:

   @implementation MyView

// startTime is an ivar
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    startTime = [NSDate timeIntervalSinceReferenceDate];
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    NSLog(@"%f", [NSDate timeIntervalSinceReferenceDate] - startTime);
}

1 个答案:

答案 0 :(得分:3)

发现问题:Magic Trackpad。当您运行模拟器时,Magic Trackpad会在确定您已结束触摸之前添加延迟。