Нажмите «Распознаватель жестов» слишком медленно

Мне трудно получить UITapGestureRecognizer для обнаружения каждого касания, которое происходит. Для контекста я делаю барабанное приложение. Я получил признак распознавания жестов, чтобы работать правильно, но пользователь должен иметь возможность быстро нажимать на барабан, и распознаватель только набирает, скажем, крана каждый раз так часто (если вы пытаетесь постучать так быстро, как можете ).

Я предполагаю, что это связано с тем, что iOS категоризирует очень быстрые нажатия в строке в качестве одного жеста, но есть ли способ получить каждый раз, когда палец опускается как событие крана?

Я попытался использовать UILongPressGestureRecognizer с небольшой продолжительностью нажатия.

Я попробовал установить requiredNumberofTouches и requiredNumberofTaps до 1.

Код не кажется необходимым для публикации, чтобы ответить на вопрос, но я отправлю его, если вы его попросите.

Любая помощь была бы очень признательна!

EDIT: я добавляю свой код, так как он может помочь:

 -(void)tap:(UITapGestureRecognizer *)tapGestureRecognizer { CGPoint location = [tapGestureRecognizer locationInView:[self view]]; switch ([self validateTouchLocation:location]) { case 0: return; case 1: [[ASSoundManager sharedManager] playSoundNamed:@"SD0025" ofType:@"mp3"]; break; case 2: default: [[ASSoundManager sharedManager] playSoundNamed:@"SD0010" ofType:@"mp3"]; break; } float tapWidth = 30; ASDrumTapView *drumTapView = [[ASDrumTapView alloc] initWithFrame:CGRectMake(location.x - (tapWidth / 2), location.y - (tapWidth / 2), tapWidth, tapWidth)]; [drumTapView setBackgroundColor:[UIColor clearColor]]; [drumTapView setNeedsDisplay]; [[self view] addSubview:drumTapView]; float animDuration = 0.75; CGRect frame = [drumTapView frame]; [UIView animateKeyframesWithDuration:animDuration delay:0.0 options:0 animations:^{ [UIView addKeyframeWithRelativeStartTime:0 relativeDuration:animDuration animations:^{ [drumTapView setFrame:CGRectInset(frame, -frame.size.width, -frame.size.height)]; }]; [UIView addKeyframeWithRelativeStartTime:0 relativeDuration:3*animDuration/5 animations:^{ [[drumTapView layer] setOpacity:0.0]; }]; } completion:^(BOOL finished) { [drumTapView removeFromSuperview]; }]; } 

Могло быть много причин:

  • Одна из возможных причин может заключаться в том, что ваш звуковой движок не может воспроизводить следующий звук перед тем, как закончится предыдущий звук.
  • Проверить свойство multipleTouchEnabled на UIView
  • Если ваше представление встроено в UIScrollView или любой производный класс, проверьте свойство delaysContentTouches

Хотя я ценю вклад каждого, я понял это сам.

В моем коде я запускаю анимацию ключевого кадра с параметрами, установленными в 0 . Это означает, что во время анимации взаимодействие пользователя с представлением не включено.

Установив options UIKeyframeAnimationOptionAllowUserInteraction , я могу подобрать краны, хотя одно из подзонов все еще находится в анимации.

Надеюсь, это поможет кому-то еще!

  • Как определить приоритеты распознавателей жестов и касания в UIView
  • Отключить получение штрихов из родительского представления в подвью
  • Получите слово от длинного нажатия в слове UITextView
  • Почему UIGestureRecognizer вызывается на мою кнопку очистки текстового поля?
  • UIGestureRecognizer и UITextView
  • Одновременное использование сенсорных и сенсорных распознавателей жестов
  • UIPanGestureRecognizer в SKScene
  • Подклассификация UIPanGestureRecognizer для ожидания состояния до распознавания
  • Цель C: GestureRecognizer в ViewController -> сохранить цикл?
  • Масштабирование UICollectionView с пользовательской компоновкой, но сосредоточение на щепотке
  • Как увеличить допуск вертикального перемещения горизонтального UISwipeGestureRecognizer?
  • Interesting Posts

    Использование UIAutomation для поиска элементов в главном представлении очень медленное в приложении IPhone

    Множество UILocalNotification

    Принудительная коллекцияView имеет только 2 строки

    Преобразование проекта xcode в iOSOpenDev

    остановить нажатие на SKSpriteKit click

    iOS MPMoviePlayerController воспроизводит аудио в фоновом режиме

    Разница между разработчиком Apple и корпоративной учетной записью

    Как проверить «Разрешить полный доступ» предоставляется с iOS 8.3 * из приложения-контейнера *

    ReactNative – Почему мой пользовательский компонент NavigationBar визуализируется в нижней части экрана?

    «Ошибка пакета приложений не содержит допустимого идентификатора» после установки сотового мобильного сканирования api sdk

    Как добавить iOS пользовательский шрифт с тем же именем, но с другим весом?

    Что такое защита файлов по умолчанию в iOS и как ее изменить?

    Как правильно использовать UITableViewCell с UITableViewCellStyle с повторным использованием ячеек?

    Отключить взаимодействие пользователя в представлении IOS

    Как узнать, какой другой UIScrollView вмешивается в scrollsToTop?

    Давайте будем гением компьютера.