如何将自定义视图添加到 iOS VoiceOver 转子?

Posted

技术标签:

【中文标题】如何将自定义视图添加到 iOS VoiceOver 转子?【英文标题】:How can I add to the iOS VoiceOver rotor for a custom view? 【发布时间】:2013-03-11 20:20:46 【问题描述】:

最近,我一直在努力让我的应用程序与 VoiceOver 一起正常运行。一般来说,它简单明了,但我想模拟来自系统应用程序的一些行为,而且我很难找到 API 来进行设置。

特别是,我有兴趣向 VoiceOver“转子”添加几个选项,并在用户增加和减少值时响应它们。然而,尽管像 Apple 的 Maps 应用这样的应用会向转子添加项目并能够做出响应,但我不知道如何为我的应用这样做。

有没有人成功做到这一点?如果有,怎么做?

【问题讨论】:

【参考方案1】:

更新ios 10 终于添加了向 VoiceOver 添加自定义转子项的功能(与“Actions”转子项不同) - 只需将 UIAccessibilityCustomRotor 对象数组添加到 accessibilityCustomRotors适当的容器视图。

老答案

目前没有用于添加您自己的转子项目的 API。您只能实现一些现有转子项目的工作方式:

    “调整值” - 在这里你应该返回UIAccessibilityTraitAdjustable trait 来获取accessibilityTraits,然后实现accessibilityIncrement/accessibilityDecrement 方法 “标题” - 您将某些视图标记为 UIAccessibilityTraitHeader,那么当用户旋转到“标题”并向上/向下滑动时,这些视图应该是用户移动的视图 旧更新:“行动” - 见UIAccessibilityCustomAction

如果您需要向转子添加自定义项目,我想您应该提交雷达。

【讨论】:

不幸的是,我似乎也看到了这种情况。到目前为止,似乎只有 Apple 设法添加了一些东西(地图尤其具有缩放级别,但 Google 地图使用“调整值”方法)。 你知道如何让'Lines'选项出现在转子中吗?尽管在系统设置中选择了它,但它没有显示出来。我有一个主要基于文本的应用程序,但使用带有单元格的 UITableView 来布局文本。 我已将上述问题作为一个单独的问题提出:***.com/questions/22793032/…【参考方案2】:

在 iOS 8 中,您可以使用 -accessibilityCustomActions 方法返回一组 UIAccessibilityCustomAction 对象,代表您希望呈现“转子样式”的动作。

【讨论】:

这确实扩大了当前转子项目的列表,您可以调整它们的工作方式(从 2 到 3,添加“动作”转子项目)。但它仍然不允许添加自定义转子项目。 它确实允许添加自定义转子项目;我使用这种方法在我的应用程序中做到了这一点。

以上是关于如何将自定义视图添加到 iOS VoiceOver 转子?的主要内容,如果未能解决你的问题,请参考以下文章

将子视图添加到自定义 viewForHeaderInSection 会中断 VoiceOver 导航

如何将自定义视图添加到布局?

UIAlertController - 将自定义视图添加到操作表

隐藏WKWebView避免VoiceOver识别ios

如何将自定义视图+控制器添加到模型?

如何以编程方式将自定义 uiview 添加到视图控制器 SWIFT