Я отслеживаю последовательность касаний в представлении. Представление находится в иерархии 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 секунды ничего не происходит, а затем быстро переходит к положению пальца. Это выглядит некрасиво.
Есть идеи, как отключить этот механизм ожидания, чтобы касания происходили немедленно?