Я знаю, что это немного старый вопрос, но вот решение, если кому-то это нужно.
Чтобы обрабатывать одинарные и двойные касания в одном и том же виде, распознаватель одного касания должен ждать сбоя распознавателя двойного касания. Примерно так:
UITapGestureRecognizer* doubleTapRecon = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap)];
[doubleTapRecon setNumberOfTapsRequired:2];
[doubleTapRecon setDelegate:self];
[self.view addGestureRecognizer:doubleTapRecon];
UITapGestureRecognizer* singleTapRecon = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap)];
[singleTapRecon setNumberOfTapsRequired:1];
[singleTapRecon requireGestureRecognizerToFail:doubleTapRecon];
[singleTapRecon setDelegate:self];
[self.view addGestureRecognizer:singleTapRecon];
Обратите внимание, что если вы не используете ARC, вы должны позаботиться об управлении памятью.