iOS 隐藏元素

示例

UIAccessibilityProtocol默认情况下,大多数UIKit类(包括UIView)都遵守并返回正确的值。很容易想到UIView,可访问性层次结构中也不存在要隐藏的集合,因此VoiceOver不会对其进行导航。尽管此默认行为通常就足够了,但有时视图会出现在视图层次结构中,但不可见或不可导航。例如,按钮的集合可能被另一个视图重叠,从而使视力不佳的用户看不到它们。但是,VoiceOver仍将尝试导航它们,因为从技术上讲它们不会隐藏UIKit因此仍然存在于可访问性层次结构中。在这种情况下,您必须向VoiceOver提示无法访问父视图。您可以通过在视图离开屏幕时设置hidden来从UIKit显式隐藏视图来实现此目的:

myViewFullofButtons.hidden = YES;

另外,您可以使父视图保持可见状态,并仅在可访问性层次结构中隐藏其子视图:

myViewFullofButtons.accessibilityElementsHidden = YES;

临时视图是您要在可访问性层次结构中隐藏元素并使用户可见的另一个地方。例如,当您按下音量按钮时弹出的视图对于有视力的用户是可见的,但并不需要像普通警报那样关注。您不希望VoiceOver中断用户并使光标远离他们宣布新音量的操作,尤其是考虑到调整音量已经通过其发出的咔嗒声提供了听觉反馈。在这种情况下,您需要使用来隐藏视图accessibilityElementsHidden。