隐藏时可选择VoiceOver控件

时间:2012-01-13 04:14:56

标签: ios voiceover

我有一个UIView,其中包含一些控件(例如按钮,标签等)。我将此视图覆盖到另一个视图(使用addSubview)。如果用户启用了VoiceOver,则可以向左和向右滑动以选择控件。但是,如果我隐藏视图以使控件不再可见,则用户仍然可以滑动并选择它们(尽管它们实际上不起作用)。由于这对盲人用户来说非常困惑,我想保持这种情况不会发生。我甚至尝试删除包含控件的视图(使用removeFromSuperview)但是用户仍然可以滑动以选择它们(尽管突出显示它们的小框不再位于正确的位置)。就像VoiceOver已经记住那些控件曾经存在并且会永远记住这些控件。

我还找到了属性'accessibilityElementsHidden',并且我已经尝试将视图设置为YES,该视图包含隐藏的控件,但这似乎也不起作用。

这是VoiceOver中的错误,还是我错过了什么?有解决方法吗?

感谢。

2 个答案:

答案 0 :(得分:10)

“记忆”部分让我觉得在删除子视图后你没有做UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, nil)之类的事情。

答案 1 :(得分:8)

“accessibilityElementsHidden”的文档说明:

  

一个布尔值,指示是否可访问性元素   隐藏此辅助功能元素中包含的内容。 .....   此属性的默认值为NO。您可以使用此属性   隐藏新视图到达所涵盖的视图。在这   例如,隐藏的视图可能仍然在屏幕上可见,但它们不是   用户行动的重点。

     

您也可以使用此属性隐藏瞬态视图   VoiceOver用户无需注意。例如,VoiceOver没有   需要描述用户调整时出现的半透明视图   他们设备上的音量,因为这个动作的听觉反馈   已经足够了。

因此,基于此,为了让VoiceOver忽略这些子视图,您实际上希望在父视图上将其设置为“YES”。