ios UI中的容器可访问性

xxb16uws  于 2023-02-26  发布在  iOS
关注(0)|答案(2)|浏览(315)

画外音中有一个“容器”转子选项,用户可以通过单指向上滑动和向下滑动操作快速浏览屏幕的“高级”部分。例如,日历应用程序有三个高级项目:导航栏、内容和工具栏。
我的应用使用自定义的UIView子类,无论我尝试做什么,我所有的视图似乎都属于一个容器。我不能将它们分成逻辑部分。我尝试将它们放在单独的视图中,实现UIAccessibilityContainer协议,并在父视图上设置一些可访问性属性。
有人知道如何创建多个容器吗?

jmo0nnb3

jmo0nnb31#

我对这个问题做了一些调查,认为这是苹果正在使用的一个私人特性。首先,我注意到唯一能识别的容器是标准的UIKit类型对象,如UITableViews,UITabBars,UINNavigationBars,所以接下来我使用调试器检查这些组件的可访问性特征的值。它们都是0x 20000000000。只是为了确定我没有“不要错过UIAccessibilityTrait我检查了它们所有的值。没有一个值与这个值匹配。此外,如果你将视图的可访问性特性设置为这个神秘的值,它就会像你想要的那样工作!我试图确定这个常量的位置,但没有太多的运气。如果你想做更多的挖掘,它看起来像苹果存储accessibilityTraits使用NSObject类别,使用关联的对象与一些常量值命名为AXTraitsIdentifier。
实际上,您可以执行类似下面的操作,但由于它不是在公共API中定义的,因此其功能在将来可能会发生变化

//Note the navBar has to be run through a voice over pass before the value is set :( or you can just directly set the value to 0x200000000000.
myContainerView.accessibilityTraits = navBar.accessibilityTraits;

我很想听听其他人是否有这方面的信息?到目前为止,我还没有找到一个理想的解决方案。

zpjtge22

zpjtge222#

通过将视图的accessibilityContainerType属性设置为semanticGroup,当选择“容器”转子选项时,我可以通过单指向上滑动和向下滑动操作来访问应用程序中的视图。

相关问题