缩短UIScrollView中的触摸延迟?

时间:2010-06-20 18:53:04

标签: iphone uiscrollview touch delay ios

我希望缩短UIScrollView上的触摸延迟,但我不想使用setDelaysContentTouches:NO;我仍然希望稍有延迟,但我的用户抱怨它太长了。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:3)

医生说

  

如果用户在计时器之前将手指拖得足够远   过了,滚动视图取消了子视图中的任何跟踪   执行滚动本身。子类可以覆盖   touchesShouldBegin:withEvent:inContentView:,pagingEnabled,和   touchesShouldCancelInContentView:方法(由   滚动视图)以影响滚动视图处理滚动手势的方式。

所以我认为没有简单的方法可以做到这一点。您可能必须在这些方法中重新实现整个计时器系统。

答案 1 :(得分:0)

我刚遇到这个问题,这是我的解决方案:

子类UIScrolView

添加覆盖这些方法:

- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view
{


    self.lastTimestamp = [NSDate date];

    return [super touchesShouldBegin:touches withEvent:event inContentView:view];
}

- (BOOL)touchesShouldCancelInContentView:(UIView *)view
{
      NSDate *now = [NSDate date];


     if (-[self.lastTimestamp timeIntervalSinceDate:now] < _delay)
        return YES;

    return NO;
}