#iphone #uigesturerecognizer #multi-touch #touchesbegan
#iPhone #uigesturerecognizer #мультитач #touchesbegan
Вопрос:
У меня есть приложение, которое довольно часто использует распознаватели жестов. Из проведенного мной исследования я обнаружил, что существует метод распознавания жестов touchesBegan, а затем есть распознаватели жестов, которые должны быть более плавными.
Проблема, с которой я столкнулся, заключается в том, что распознаватели жестов далеко не так отзывчивы и точны, как метод touchesBegan, но их намного проще реализовать, очевидно, поэтому я их и использую. Если я хочу, чтобы распознаватель жестов распознал жест из 3 пальцев, это довольно сложно, потому что мне приходится одновременно нажимать 3 пальца, иначе он не сработает. Это отличается от метода touchesBegan, который просто знает, сколько пальцев у вас нажато в любой момент.
Я что-то упускаю при реализации этой, казалось бы, приятной функции жестов, которая делает ее не очень отзывчивой? Я установил максимальное и минимальное количество касаний равным 3, это неправильно?
Пожалуйста, помогите. Спасибо!!
Ответ №1:
Причина, по которой вам нужно нажимать одновременно, заключается в том, что по умолчанию одновременно может быть распознан только один распознаватель жестов. Поэтому, как только вы нажимаете одним пальцем вниз, распознаватель автоматически блокирует два других.
Попробуйте реализовать UIGestureRecognizerDelegate и использовать:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
Я не уверен, решит ли это проблему или нет, но это возможно.
Приветствия.