如何通过语音获取当前所选tableviewcell的IndexPath?

时间:2016-12-21 10:22:48

标签: ios objective-c uitableview nsindexpath voiceover

我在我的应用程序中使用Voice Over。当开启语音时,我很难弄清楚当前选择了哪个表格单元格。我怎么知道用户何时启动单击或浏览任何tableviewcell?

1 个答案:

答案 0 :(得分:1)

这些是你可以尝试的东西:

  • 使用UIAccessibilityFocusedElement全局函数
  • 覆盖单元格上的accessibilityElementDidBecomeFocusedaccessibilityElementDidLoseFocus
  • 在您需要的情况下观察UIAccessibilityElementFocused中的NotificationCenter通知(例如,当显示相关表格的视图控制器时)

另外,报告焦点的元素很可能取决于您的UITableViewCell是否isAccessibilityElement设置为truefalse

虽然上述内容可能会帮助您完全按照您的要求提供帮助,但如果您需要上述信息,那么在这种情况下您的整体可访问性方法可能也是错误的。如果你分享更多关于你想要实现的更大的图片/动机的信息,可能会发现根本不需要有关聚焦元素的信息,而另一种解决方案更合适。

如果您需要添加提示进行滑动,则只需在正确的元素上设置accessibilityHint(如果在整个单元格上设置isAccessibilityElement = true,则在整个单元格上设置tableView(_:cellForRowAt:),否则尝试在VoiceOver在单元格中读取的标签上设置它,例如配置要显示的单元格时(通常在rocommunity public master agentx agentxsocket tcp:localhost:705 agentaddress 10161 authtrapenable 1 trapsink 192.168.42.2 public 10162 中)。在这种情况下,您不需要观察哪个元素被聚焦,只需让VoiceOver读取该特定元素/单元格上的提示。