似乎无法保证在循环UIGestureRecognizer的方法[locationOfTouch:inView:]时出现UITouches的顺序.特别:
for (int i = 0; i < [recognizer numberOfTouches]; i++) {
CGPoint point = [recognizer locationOfTouch:i inView:self];
NSLog(@"[%d]: (%.1f, %.1f)", i, point.x, point.y);
}
Run Code Online (Sandbox Code Playgroud)
人们会认为索引为0的点将是第一个UITouch,或者是第一个被释放的点,但通常2个触摸的顺序是混合的.有谁知道如何测试这些事件的顺序?遗憾的是,无法访问UITouch对象本身(使用时间戳).
此外,文档中不保证触摸-locationOfTouch:inView:
始终处于可靠的顺序.任何人都可以确认或否认这个吗?