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

时间:2015-09-25 13:46:35

标签: ios objective-c iphone accessibility

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

当用户用两根手指轻扫以读取屏幕上的所有元素时,VoiceOver将首先读取我的新VC中的元素,就像它应该的那样,然后它将开始读取此VC后面现在“隐藏”的元素(在引号中因为它们没有以编程方式设置为隐藏,只是隐藏因为VC覆盖它们而且不应该被读取。

有没有简单的方法告诉VoiceOver跳过整个旧的VC?或者我是否必须逐个元素地遍历,并将isAccessibilityElement设置为NO,然后在覆盖VC被解除时返回YES?

1 个答案:

答案 0 :(得分:1)

如果要跳过特定元素的配音,则必须禁用该元素的可访问性(如果在故事板中设置),否则必须以编程方式执行。您必须设置IsAccessibilityElement to NO,才能让语音跳过该元素。

还有另一种方法可以做到这一点。你必须创建一个数组并给你想要语音的元素读取,所以当你想要将这个数组赋予:accessibilityElements时,语音ovr只会读取你在数组中给出的元素。您可以随时根据需要修改阵列。