У меня есть вид с четырьмя жесты жесты. Первое имеет как максимальное, так и минимальное количество прикосновений, равное 1, от второго до 2 и т. Д. Это делает так, что каждый будет распознавать только одно касание, пока на экране будет скользить до четырех пальцев.Использование распознавателей жестов, которые динамически прилипают к одному касанию среди многих
Это работает денди. То, что не работает, - это обнаружение, когда отдельные касания заканчиваются. Все, что я должен был сделать, когда жест заканчивается, происходит только тогда, когда все жесты полностью прекратились.
Пример метод делегата:
- (void) handlePan:(UIPanGestureRecognizer*)recognizer {
//Setting what happens when a gesture is recognized as beginning
if (recognizer.state == UIGestureRecognizerStateBegan) {
//...whatever happens, bunnies follow your finger or whatever
} else
//Setting what happens when a gesture ends
if ((recognizer.state == UIGestureRecognizerStateEnded) |
(recognizer.state == UIGestureRecognizerStateCancelled) |
(recognizer.state == UIGestureRecognizerStateFailed)) {
NSLog(@"end");
}
}
Что должно происходить в том, что я вижу «конец» в консоли, когда поднимается любой палец. Вместо этого я ничего не вижу, пока все пальцы не подняты, и в этот момент я вижу «конец» четыре раза (или столько же раз, сколько и пальцы, которые были на экране).
Есть ли способ, которым я могу сделать эту работу так, как я предполагаю?
Редактировать После ворча я вижу, что я не могу правильно анализировать свою проблему. Вся причина, по которой я хочу обнаружить, когда касание жестов заканчивается, заключается в том, что я хочу, чтобы жесты могли стать активными, когда на экране больше одного касания, но я хочу, чтобы каждый жест отслеживал только одно касание. Я устанавливал «активный» флаг на жесты, которые отслеживали касания, а затем отключил этот флаг после того, как касания закончились, и это не сработало, потому что обнаружение сенсорного конца было сложно реализовать хорошо.
Но если есть другой способ достичь того же, это настоящая вещь, которую я ищу: среди многих перекрывающихся прикосновений каждый распознаватель жестов отслеживает один и только один.
Я думаю, что [это сообщение] (http://stackoverflow.com/a/12434281/352891) поможет – user352891
@ user352891 спасибо за подсказку; на самом деле это касается другой вещи. Он различается в зависимости от того, где на экране находится жест, и вообще не обнаруживает состояния. –