滑动以切换重点可访问性元素iOS

时间:2014-12-11 17:41:16

标签: ios objective-c xcode-storyboard uiaccessibility

当用户在某些应用中启用了Voice Over时,单手向右或向左滑动会更改焦点辅助功能元素并对其进行说明(例如,App Store顶部图表视图)。我想在我自己的应用程序中使用它(使用故事板)。

我可以通过滑动手势识别器和可访问性元素列表按顺序思考几种方法,但似乎必须有一种方法可以在辅助功能API中执行此操作。然而,我的研究结果却没有发现。

这是内置功能吗?如果是这样,我如何在故事板或代码中添加它?

编辑:

根据我给我的观点实现UIAccessibility协议的答案之一的建议。这是代码。

- (NSInteger)accessibilityElementCount{
  return 4;
}

- (id)accessibilityElementAtIndex:(NSInteger)index{
  return [@[self.menuButton, self.firstButton, self.secondButton, self.thirdButton] objectAtIndex:index];
}

- (NSInteger)indexOfAccessibilityElement:(id)element{
  return [@[self.menuButton, self.firstButton, self.secondButton, self.thirdButton] indexOfObject:element];
}

我遇到此问题的视图在界面构建器故事板中定义。毫无疑问,从代码中可以推断,它有3个按钮作为子视图。

2 个答案:

答案 0 :(得分:0)

您所描述的是VoiceOver的内置行为,无法在每个应用的基础上进行更改。

如果您想修改订单元素,请查看iOS 7的UIAccessibilityContainer协议或iOS 8的accessibilityElements NSObject属性。如果您不这样做想要实现其中任何一个,您还可以将accessibilityElementsHidden设置为YES,以查找您希望VoiceOver忽略的元素。

答案 1 :(得分:0)

我通过在故事板中的按钮上添加辅助功能标签来解决问题。因为配音已经正确地说出了他们的标签,我之前并没有费心去做。