12

我有一个带有两个子视图的视图,一个按钮和一个图像,我打开可访问性并在子视图上设置标签,我可以通过调用查看层次结构

UIATarget.localTarget().frontMostApp().mainWindow().logElementTree();

例如,我得到以下信息:

1 个窗口

2 我的观点

3 我的按钮

3 我的形象

如果我随后打开可访问性并为我的父视图设置标签,我将无法再在层次结构中的任何位置看到我的按钮和图像。

我只是得到:

1 个窗口

2 我的观点

为什么我的观点消失了?

4

1 回答 1

10

直接来自 iOS 文档辅助功能指南

使自定义容器视图的内容可访问 如果您的应用程序显示的自定义视图包含用户与之交互的其他元素,则需要使包含的元素可单独访问。同时,您需要确保容器视图本身不可访问。原因是用户与容器的内容交互,而不是与容器本身交互。

为此,您的自定义容器视图应实现 UIAccessibilityContainer 协议。该协议定义了使包含的元素在数组中可用的方法。

以下代码片段显示了自定义容器视图的部分实现。请注意,仅当调用 UIAccessibilityContainer 协议的方法时,此容器视图才会创建可访问元素的数组。因此,如果 iPhone 可访问性当前未处于活动状态,则不会创建数组。

于 2011-06-01T11:24:52.180 回答