ios - 将 ViewController 中的所有元素设置为不被 VoiceOver 读取

标签 ios objective-c iphone accessibility

我正在寻找一种方法来告诉 VoiceOver 不要读取整个 ViewController 的元素值(value)。原因是,我有一个按钮,按下时会在屏幕上显示模态 VC。我说 modal-ish,因为它不是模态而是带有自定义动画的自定义 VC,它实际上并没有覆盖整个屏幕,所以新 VC 和旧 VC 同时在 View 中并保持在内存中。

当用户用两根手指滑动以阅读屏幕上的所有元素时,VoiceOver 将首先阅读我的新 VC 中的元素,就像它应该的那样,然后它会开始阅读这个 VC 后面现在“隐藏”的元素(在引号中,因为它们没有以编程方式设置为隐藏,只是隐藏因为 VC 掩盖了它们)并且不应阅读。

有什么简单的方法可以让 VoiceOver 跳过整个旧的 VC?或者我是否必须逐个元素地检查,并将 isAccessibilityElement 设置为 NO,然后在覆盖 VC 被取消时返回 YES?

最佳答案

如果您想跳过某个特定元素的画外音,您必须禁用该元素的可访问性(如果它已在 Storyboard中设置),否则,您必须以编程方式执行此操作。您必须将 IsAccessibilityElement 设置为 NO,以使语音跳过该元素。

还有另一种方法。你必须制作一个数组并给出你想要语音读取的元素,所以当你想要这个数组时:accessibilityElements,这样语音 ovr 将只读取你在大批。您可以随时根据需要修改数组。

关于ios - 将 ViewController 中的所有元素设置为不被 VoiceOver 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32783664/

相关文章:

ios - 使用 swift 代码编码 url

ios - NSURLSessionConfiguration总是返回nil

objective-c - 我应该如何在本地存储一堆数据以显示在 UITableView 上?

iphone - iOS:游戏中心在模拟器上崩溃

ios - Swift:获取路径中的子路径和子路径中的文件?

ios - 我可以通过编程方式让 UITabBarController 切换选项卡吗?

objective-c - 如何在 Objective C 中使用 RCT_EXPORT_VIEW_PROPERTY 检测属性更改?

iPhone,重现放大镜效果

iphone - @dynamic 和@synthesize 之间有什么区别?

ios - 警告 : "Minimum Font Size greater than current font size"