有一个"容器"画外音中的转子设置 - 它允许您快速浏览"高级"屏幕的各个部分(向上和向下滑动)。例如,在日历中,您有3个项目 - 导航栏,内容,工具栏。
我的应用程序使用自定义UIView子类,无论我尝试做什么 - 我的所有视图似乎属于单个容器 - 所以我不能将它们分成逻辑部分。我尝试将它们放在实现UIAccessibilityContainer协议的单独视图中,并在这些父视图上设置一些辅助功能属性。
有谁知道如何创建多个容器?</ p>
答案 0 :(得分:1)
我在这个问题上做了一些挖掘,并认为它是苹果正在使用的私人特质。首先我注意到唯一识别的容器是标准的UIKit类型对象,如UITableViews,UITabBars,UINavigationBars等。接下来我使用调试器来检查这些组件的可访问性特征的值。他们都是0x200000000000。为了确保我没有错过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;
我很想知道其他人是否有关于此的信息?到目前为止,我还没有找到理想的解决方案。