Похоже, что нет гарантии относительно порядка, в котором появляются UITouches при циклировании через метод UIGestureRecognizer [locationOfTouch: inView:]. В частности:
for (int i = 0; i < [recognizer numberOfTouches]; i++) {
CGPoint point = [recognizer locationOfTouch:i inView:self];
NSLog(@"[%d]: (%.1f, %.1f)", i, point.x, point.y);
}
Можно было бы подумать, что точка с индексом 0 будет первым UITouch, или первым, который был выпущен, но довольно часто порядок в 2 касания смешивается. Кто-нибудь знает, как проверить порядок этих событий? К сожалению, нет доступа к самим объектам UITouch (с меткой времени).
Кроме того, в документации не содержится никаких гарантий, что штрихи от -locationOfTouch:inView:
всегда будут в надежном порядке. Кто-нибудь может подтвердить или опровергнуть это?