ios - 如何通过语音获取当前选定的 tableviewcell 的 IndexPath?

标签 ios objective-c uitableview nsindexpath voiceover

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

最佳答案

您可以尝试以下方法:

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

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

虽然上面的内容可能会帮助您解决您所问的问题,但如果您需要上述信息,在这种情况下您的总体可访问性方法也可能是错误的。如果您分享更多有关您想要实现的目标的大局/动机的信息,则可能根本不需要有关焦点元素的信息,并且另一个解决方案更合适。

如果您需要添加滑动提示,您只需在适当的元素上设置 accessibilityHint (如果您在整个单元格上设置 isAccessibilityElement = true,然后将其设置在整个单元格上,否则尝试将其设置在 VoiceOver 在单元格中读取的标签上),例如当您配置要显示的单元格时(通常在 tableView(_:cellForRowAt:) 中)。在这种情况下,您不需要观察哪个元素获得焦点,只需让 VoiceOver 读取该特定元素/单元格上可用的提示即可。

关于ios - 如何通过语音获取当前选定的 tableviewcell 的 IndexPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41260459/

相关文章:

ios - 在另一个 UIImage 之上添加 UIImage

ios - 在 coredata 中保存实体的单行而不是整个实体或上下文

objective-c - 如何聚焦 Collection View 可见单元格的最后一个单元格?

c++ - 识别 macOS 当前进程中的堆栈和堆段

ios - 以编程方式设置 UITableView 的背景颜色不起作用

ios - UITableView:将行,页眉和页脚插入/删除并置

ios - Grand Central Dispatch 多个 DispatchGroups

ios - 如何在条形图中绘制矩形切片?核心情节

ios - ios 如何查看数据保存到文件的时间

UITableView 文本标签对齐方式