如何对UIAccessibilityElement子类中的“touch up inside”事件做出反应?

时间:2013-07-27 19:28:25

标签: ios uibutton accessibility uiaccessibility

我有一张带有绘制物品的地图。地图处理触摸事件并将触摸的项目确定为按钮。

我将地图设为容器并实现了返回accessibleElements的方法。对于每个项目,我创建一个UIAccessibilityElement子类的实例。

似乎UIAccessibilityAction协议没有“轻击”或“按下按钮”事件的回调。 我如何模仿UIButton与UIAccessibilityElement的效果呢?

1 个答案:

答案 0 :(得分:0)

假设您在iOS 5或iOS 6下运行,请考虑以下解决方法。它不是最佳的,但会有更好的方法,直到有效:

  1. 创建一个虚拟视图,它本身不是一个辅助功能元素。
  2. 在此视图中,在-touchesEnded:withEvent:
  3. 中实施“点按”处理
  4. 将辅助功能元素的accessibilityActivationPoint设置为属于此虚拟视图的值。
  5. 当激活相应的辅助功能元素时,您的虚拟视图将接收触摸事件。如果VoiceOver和其他辅助技术未运行,请确保忽略虚拟视图中的触摸处理。

    编辑:另一个不太常见的方法是在您关注的视图上实现点击手势识别器,将坐标从-touchesEnded:withEvent:转换为屏幕坐标,并手动点击您的辅助功能框架测试点元件。