I have the following issue:
If i tap the touch screen with one finger (i.e. middle finger) and close to the moment that the finger is going up i tap with a second finger (i.e. index finger) close to the area where the other finger was, instead of getting a down event, i get a move of the first finger to the down position of the second finger. It is a little tricky to reproduce but it is reproducible.
I have a UIView and for the touches i have the following:
- (void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event
{
for (UITouch *touch in touches) {
int index = (int)touch;
CGPoint position = [touch locationInView:self];
NSLog(@"DOWN %d x:%f y:%f", index, position.x, position.y);
}
}
- (void) touchesMoved: (NSSet *) touches withEvent: (UIEvent *) event
{
for (UITouch *touch in touches) {
int index = (int)touch;
CGPoint position = [touch locationInView:self];
NSLog(@"MOVE %d x:%f y:%f", index, position.x, position.y);
}
}
- (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event
{
for (UITouch *touch in touches) {
int index = (int)touch;
CGPoint position = [touch locationInView:self];
NSLog(@"UP %d %f %f", index, position.x, position.y);
}
}
When i reproduce it i have the following output
DOWN 510365696 x:891.500000 y:197.000000
MOVE 510365696 x:774.000000 y:263.000000
MOVE 510365696 x:766.000000 y:268.500000
UP 510365696 764.500000 270.000000
where the above MOVE is the down position of the second finger. As you can also see the UP from the first finger which should be in pos (891,197) is totally lost...
I know that i could detect these "jumps" but there is no way to differentiate them from a fast moving finger.
I appreciate any help.