我在我的应用程序中使用 Voice Over。当语音开启时,我很难弄清楚当前选择了哪个表格单元格。我如何知道用户何时启动单击或浏览任何 tableviewcell?
最佳答案
您可以尝试以下方法:
- 使用
UIAccessibilityFocusedElement
全局函数 - 覆盖单元格上的
accessibilityElementDidBecomeFocused
和accessibilityElementDidLoseFocus
- 在需要的情况下(例如,当显示相关表格的 View Controller 时),观察
NotificationCenter
中的UIAccessibilityElementFocused
通知
此外,哪个元素将报告焦点很可能取决于您的 UITableViewCell 是否将 isAccessibilityElement
设置为 true
或 false
。
虽然上面的内容可能会帮助您解决您所问的问题,但如果您需要上述信息,在这种情况下您的总体可访问性方法也可能是错误的。如果您分享更多有关您想要实现的目标的大局/动机的信息,则可能根本不需要有关焦点元素的信息,并且另一个解决方案更合适。
如果您需要添加滑动提示,您只需在适当的元素上设置 accessibilityHint
(如果您在整个单元格上设置 isAccessibilityElement = true
,然后将其设置在整个单元格上,否则尝试将其设置在 VoiceOver 在单元格中读取的标签上),例如当您配置要显示的单元格时(通常在 tableView(_:cellForRowAt:)
中)。在这种情况下,您不需要观察哪个元素获得焦点,只需让 VoiceOver 读取该特定元素/单元格上可用的提示即可。
关于ios - 如何通过语音获取当前选定的 tableviewcell 的 IndexPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41260459/