Проблема заключается в том, как сообщается о касаниях в этом методе. NSSet touches
в этом методе содержит один или несколько экземпляров UITouch, и каждый экземпляр UITouch представляет события касания одним пальцем на экране. Таким образом, если пользователь касается экрана двумя пальцами, набор touches
будет содержать два объекта UITouch.
Проблема заключается в том, что один UITouch может иметь несколько нажатий, не считая несколько UITouch. Если устройство обнаруживает два касания (пальцем вниз и вверх без значительного движения) примерно в одном и том же месте, оно объединит их в один UITouch, содержащий несколько касаний. В этом случае вы используете селектор tapCount
на UITouch, чтобы выяснить, сколько касаний было при прикосновении.
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"Got %u touches", [touches count]);
for(UITouch *touch in touches) {
NSLog(@"Touch had %u taps", [touch tapCount]);
}
}
Для получения дополнительной информации: