Как исправить эту проблему с производительностью сенсорного события? - PullRequest
1 голос
/ 06 августа 2009

Я отслеживаю последовательность касаний в представлении. Представление находится в иерархии 3 других представлений, и ничто не покрывает его.

Когда касания начинаются, пока касания не перемещаются, я получаю задержку в 0,2 секунды. Все последующие касания имеют небольшую задержку - всего 0,01 секунды.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    lastTime = [NSDate timeIntervalSinceReferenceDate];
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];

    if ([touch view] == self.wheelView) {
        CGFloat timeDiff = [NSDate timeIntervalSinceReferenceDate] - lastTime;
        NSLog(@"%f", timeDiff);
        lastTime = [NSDate timeIntervalSinceReferenceDate];
    }
}

Каждая последовательность касаний, начиная с штрихов, начинается: до нескольких касаний. Перемещается: задержка выполнения выглядит следующим образом:

0.266244
0.001605
0.025965
0.005230
0.011768
0.001601
0.010808
0.002451

Как вы видите, первый сильно задерживается. Я могу только догадываться, но: iPhone OS некоторое время ждет, чтобы увидеть, будет ли это касание последовательности? Или другими словами: ждет ли оно того, чтобы касание было задумано как движущееся касание?

Я пытаюсь реализовать технику прокрутки только для практики (конечно, я мог бы использовать UIScrollView, но я хочу научиться). Когда я начинаю прокручивать, мне плохо, потому что первые 0,26 секунды ничего не происходит, а затем быстро переходит к положению пальца. Это выглядит некрасиво.

Есть идеи, как отключить этот механизм ожидания, чтобы касания происходили немедленно?

Ответы [ 2 ]

0 голосов
/ 06 января 2011

В UIScrollView есть опция «задерживать касания контента», но я не вижу их в обычном UIView / UIViewController. Может ли проблема также привести к этому? У кого-нибудь есть обходной путь?

0 голосов
/ 06 августа 2009

Попробуйте NSLog-ging вне оператора if, я думаю, вы получите те же результаты. Я думаю, что iPhone OS делает это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...