iOS画外音-无法在ARKit中捕捉触摸

iOS画外音-无法在ARKit中捕捉触摸,ios,accessibility,scenekit,arkit,Ios,Accessibility,Scenekit,Arkit,当画外音被禁用时,我有一个功能性ARKit和SceneKit会话 我可以使用touchesbreated(:)捕捉触摸 然而,当我激活VoiceOver时,触碰似乎被可访问性框架捕获。我无法在sceneView中获得任何用户触摸的反馈,以实现自定义操作 我尝试将打印语句放入: 接触法 一个调试子视图,作为带有轻触手势识别器的sceneView的子视图 在可达性克罗尔法中 但他们似乎都没有被叫来。 当可访问性启用时,是否有任何方法可以获得用户触摸的反馈?(我只是想在双击时映射一些自定义操作)

当画外音被禁用时,我有一个功能性ARKit和SceneKit会话

我可以使用touchesbreated(:)捕捉触摸

然而,当我激活VoiceOver时,触碰似乎被可访问性框架捕获。我无法在sceneView中获得任何用户触摸的反馈,以实现自定义操作

我尝试将打印语句放入:

  • 接触法
  • 一个调试子视图,作为带有轻触手势识别器的sceneView的子视图
  • 在可达性克罗尔法中
但他们似乎都没有被叫来。 当可访问性启用时,是否有任何方法可以获得用户触摸的反馈?(我只是想在双击时映射一些自定义操作) 或者注册一些可访问性通知以获得一些用户反馈

我还注意到以下可能相关的警告:

[Accessibility]***在-[SCNSceneAccessibilityContainer],@:10772554112中断言失败

@[Accessibility]| SCNSceneAccessibility.m:44-[scnsceneAccessibilityContainer]|视图应该已经设置了我们的容器

编辑(解决方案)

故事板中的最终设置允许捕捉触摸: 1) 确保在主视图中启用了可访问性 2) 确保已启用“已启用用户交互” 3) 确保启用了允许直接交互特性


如果您想获得用户触摸的任何反馈,必须让VoiceOver知道您的视图可以通过将其
accessibilityTraits
设置为
UIAccessibilityTrailowsDirectInteraction
来直接解释触摸事件

你应该得到这个特定视图的手势通知,告诉你的应用程序负责触摸截取,而不是画外音


如果您想在屏幕视图中插入可访问的子视图,我建议您这样做,因为如果父视图可访问,则其子视图不可访问。

非常感谢!我设法使它工作,我有三件事要检查,以能够捕获视图接触:1)确保在主视图中启用了可访问性2)确保启用了用户交互3)确保启用了允许直接交互特性D您是否知道我为什么会得到“视图应已设置容器”的提示断言失败?@michael martinez:对不起,我没有。我从不启用用户交互,总是使用画外音手势。你的断言失败并没有敲响警钟:为此发布一个新问题,也许?