iOS VoiceOver - не удается захватить штрихи в ARKit - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть функциональный ARKit с сеансом SceneKit, когда VoiceOver отключен.

Я могу захватывать касания, используя touchesBegan (_:).

Однако, когда я активирую VoiceOver, касания, похоже, фиксируются платформой специальных возможностей. Я не могу получить какой-либо отзыв о прикосновениях пользователя в sceneView для реализации пользовательских действий.

Я пытался поместить операторы печати в:

  • касается метода Bean
  • отладочное подпредставление, помещенное как дочерний элемент сцены с помощью распознавателя жестов касания
  • в методе accessibilityScroll

Но ни один из них, кажется, не вызван. Есть ли способ получить обратную связь от прикосновений пользователя, когда доступность включена? (Я просто пытаюсь отобразить какое-то настраиваемое действие двойным нажатием) Или зарегистрироваться для получения уведомления о специальных возможностях, чтобы получить обратную связь от пользователей?

Я также заметил следующее предупреждение, которое может быть связано:

[Доступность] *** Ошибка подтверждения в - [SCNSceneAccessibility accessibilityContainer], @: 10772554112.

@ [Доступность] | SCNSceneAccessibility.m: 44 - [SCNSceneAccessibility accessibilityContainer] | Представление должно было установить наш контейнер

РЕДАКТИРОВАТЬ (решение)

Эта финальная настройка в раскадровке позволяет захватывать прикосновения: 1) Убедитесь, что доступность включена в главном окне 2) Убедитесь, что взаимодействие с пользователем включено 3) Убедитесь, что признак «Разрешает прямое взаимодействие» включен

Accessibility capture touches setup

1 Ответ

0 голосов
/ 05 ноября 2018

Если вы хотите получать какие-либо отзывы о пользовательских прикосновениях, вы должны сообщить VoiceOver, что ваше представление может интерпретировать сенсорные события напрямую, установив для accessibilityTraits значение UIAccessibilityTraitAllowsDirectInteraction.

.

Вы должны получать уведомления о жестах для этого конкретного представления о том, что ваше приложение отвечает за перехват сенсорного ввода, а не закадровый перевод.

Если вы хотите вставить доступные дочерние представления внутри вашего экрана, я предлагаю вам отключить его флаг доступности , потому что если родительское представление доступно, его дочерние элементы - нет.

...