iOS Voiceover从覆盖的UIWindow中读取

时间:2018-07-05 16:54:51

标签: ios voiceover uiaccessibility

我有以下设置:

  • UIWindow 0,windowLevel 0,rootController是应用程序的主要部分,并占据了整个屏幕,isHidden为false,不是关键窗口
  • UIWindow 1,windowLevel 1,rootController是辅助屏幕,不透明地占据整个屏幕,isHidden为false,为关键窗口

问题:

启用画外音功能后,我触摸了窗口1中没有可交互元素的区域,但是在窗口0确实具有此类元素的地方,它将选择并读取窗口0中的元素,即使尽管窗口0根本不可见。

有什么我想念的吗?

1 个答案:

答案 0 :(得分:0)

结果有两种方法可以解决此问题:

  1. 在窗口0上将accessibilityElementsHidden设置为true。这不理想,因为必须在窗口1消失时将其还原。
  2. 在窗口1上将accessibilityViewIsModal设置为true。所有窗口均为同级,因此出于可访问性目的,它将忽略窗口0。我认为这不会影响状态栏和键盘等特殊窗口。这可能是最好的解决方案。