如何设置辅助功能容器以使手势正常工作?

phi*_*phi 7 cocoa-touch accessibility ios voiceover uiaccessibility

我有一个具有此布局的视图控制器(请注意,黄色视图和表格视图是同级视图):

\n

在此输入图像描述

\n

我希望黄色视图充当容器,所以我在以下位置执行此操作viewDidLoad

\n
yellowView.isAccessibilityElement = true\nview.accessibilityElements = [yellowView!, tableView!]\n
Run Code Online (Sandbox Code Playgroud)\n

在 Voice Over 中,我从辅助功能转子中选择“Containers”,并期望能够上下滑动以从黄色视图移动到表格视图并再次返回:

\n

黄色(向下滑动) \xe2\x86\x92 TableView(向下滑动) \xe2\x86\x92 Tabbar(向上滑动) \xe2\x86\x92 tableView(向上滑动) \xe2\x86\x92 黄色

\n

然而,情况并非如此 - 在tableView获得焦点后,向上滑动不会将焦点移动到黄色视图,它只是停在那里。向下滑动,移动到选项卡栏 - 似乎我的自定义视图被忽略为容器。

\n

我尝试了许多添加超级视图并isAccessibilityElement = false对其进行设置的组合,但似乎没有任何效果。

\n

有人知道如何解决这个问题吗?

\n

小智 6

您是否设置了accessibilityLabelyellowView尝试更改accessibilityContainerType = .semantic

我认为 VoiceOver 没有找到yellowView,因为转子正在寻找UIAccessibilityContainer,但默认容器类型是.nonefor UIView。但是, a 的UITableView默认容器类型为.semantic

  • `accessibilityContainerType = .semanticGroup` 似乎有效 (2认同)