UITapGestureRecognizer
- это распознаватель дискретных жестов, поэтому он никогда не переходит в начальное или измененное состояние. Из ссылки на класс UIGestureRecognizer:
Переход дискретных жестов из Возможного в Распознанный.
(UIGestureRecognizerStateRecognized) или Ошибка
(UIGestureRecognizerStateFailed), в зависимости от того,
успешно интерпретировать жест или нет. Если распознаватель жестов
при переходе в Распознанное, оно отправляет сообщение о действии своей цели.
(Помня, конечно, что UIGestureRecognizerStateRecognized
== UIGestureRecognizerStateEnded
).
В документах говорится, что вы должны проверить состояние распознавателя жестов касания, чтобы убедиться, что он находится в завершенном состоянии, прежде чем запускать код, чтобы сказать, что он был распознан. Они не говорят, что жест касания фактически переходит в начальное или измененное состояние (хотя я допускаю, что документы немного вводят в заблуждение в используемом языке!).
Если вы хотите проверить наличие события нажатия пальцем для распознавателя жестов касания, я бы порекомендовал просто использовать touchesBegan:withEvent:
, поскольку это то, что вам действительно нужно в любом случае.