gpt4 book ai didi

ios - UIAccessibility - 容器

转载 作者:可可西里 更新时间:2023-11-01 06:06:36 28 4
gpt4 key购买 nike

画外音中有一个“容器”转子设置 - 它允许您快速浏览屏幕的“高级”部分(上下滑动)。例如,在日历中,您有 3 个项目 - 导航栏、内容、工具栏。

我的应用程序使用自定义 UIView 子类,无论我尝试做什么 - 我的所有 View 似乎都属于一个容器 - 所以我无法将它们拆分为逻辑部分。我尝试将它们放在单独的 View 中,实现 UIAccessibilityContainer 协议(protocol)并在这些父 View 上设置一些可访问性属性。

有谁知道如何创建多个容器?<​​/p>

最佳答案

我对这个问题做了一些挖掘,认为它是 Apple 使用的私有(private)特性。首先我注意到唯一识别的容器是标准的 UIKit 类型对象,如 UITableViews、UITabBars、UINavigationBars 等。所以接下来我使用调试器检查这些组件的可访问性特征的值。它们都是 0x200000000000。为了确保我没有错过 UIAccessibilityTrait,我检查了它们的所有值。它们都不匹配该值。此外,如果您将 View 可访问性特征设置为这个神秘的值,它就会像您想要的那样工作!我试着确定这个常量的位置,但运气不佳。如果你想做更多的挖掘,看起来苹果使用 NSObject 类别存储 accessibilityTraits,该类别使用关联对象和一些名为 AXTraitsIdentifier 的常量值。

实际上你可以做类似下面的事情,但由于它没有在公共(public) 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;

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

关于ios - UIAccessibility - 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27523608/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com