首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIAccessibility -容器

UIAccessibility -容器
EN

Stack Overflow用户
提问于 2014-12-17 18:37:35
回答 1查看 1.6K关注 0票数 7

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

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

有人知道如何创建多个容器吗?

EN

回答 1

Stack Overflow用户

发布于 2016-06-26 03:53:35

我在这个问题上做了一些挖掘,认为这是苹果使用的一个私人特征。首先,我注意到唯一识别的容器是标准UIKit类型的对象,如UITableViews、UITabBars、UINavigationBars等。因此,接下来我使用调试器检查这些组件的可访问性特征的值。它们都是0x200000000000。为了确保我没有遗漏任何一个UIAccessibilityTrait,我检查了它们的所有值。它们都不与该值匹配。此外,如果您将视图的可访问性特性设置为这个神秘的值,它将按照您的期望工作!我试着确定这个常量的位置,但没有太多的运气。如果你想做更深入的挖掘,看起来苹果使用NSObject类别存储accessibilityTraits,该类别使用具有某个常量值AXTraitsIdentifier的关联对象。

实际上,您可以像下面这样做,但是因为它不是在公共API中定义的,所以它的功能将来可能会改变

代码语言:javascript
复制
//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;

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

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27523608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档