繁体   English   中英

如何对UIAccessibilityElement子类中的“内部触摸”事件做出反应?

[英]How to react to a “touch up inside” event in UIAccessibilityElement subclass?

我有一张画有物品的地图。 该地图处理触摸事件,并确定触摸的项目就像按钮一样。

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

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

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

  1. 创建一个本身不是可访问性元素的虚拟视图。
  2. 在此视图上,在-touchesEnded:withEvent:实现“点击”处理。
  3. 将可访问性元素的accessibilityActivationPoint设置为该虚拟视图内的值。

当相应的辅助功能被激活时,您的虚拟视图将接收触摸事件。 如果VoiceOver和其他辅助技术未运行,请确保在虚拟视图中忽略触摸处理。

编辑:另一个不那么棘手的方法是在您关注的视图上实现轻击手势识别器,将-touchesEnded:withEvent:的坐标转换为屏幕坐标,然后针对可访问性元素的框架手动命中测试点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM