Сократить задержку касания в UIScrollView? - PullRequest
9 голосов
/ 20 июня 2010

Я пытаюсь сократить задержку касания на UIScrollView, но не хочу использовать setDelaysContentTouches: NO; Я все еще хочу, чтобы была небольшая задержка, но мои пользователи жалуются, что она слишком длинная.

Есть ли способ сделать это?

Ответы [ 2 ]

3 голосов
/ 19 августа 2011

Документ говорит:

Если пользователь затем тянет палец достаточно далеко до истечения таймера, представление прокрутки отменяет любое отслеживание в подпредставлении и выполняет саму прокрутку.Подклассы могут переопределять методы touchesShouldBegin: withEvent: inContentView :, pagingEnabled и touchesShouldCancelInContentView: (которые вызываются представлением прокрутки), чтобы влиять на то, как представление прокрутки обрабатывает жесты прокрутки.

Так что я думаю, что естьнет простого способа сделать это.Возможно, вам придется переопределить всю систему таймера в этих методах.

0 голосов
/ 19 сентября 2014

Я только что столкнулся с этой проблемой, и это мое решение:

Подкласс 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;
}
...