首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ios中覆盖VoiceOver手势?

如何在ios中覆盖VoiceOver手势?
EN

Stack Overflow用户
提问于 2017-01-13 23:53:18
回答 2查看 1.3K关注 0票数 0

我正在为盲人开发一个包含地图的应用程序。当VoiceOver被关闭时,我能够检测到UIGestureRecognizer的滑动和双击手势。例如:

代码语言:javascript
复制
UISwipeGestureRecognizer * swipeLeft=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeLeft:)];
swipeLeft.direction=UISwipeGestureRecognizerDirectionLeft;
[self.view addGestureRecognizer:swipeLeft];

但是,当VoiceOver打开时,我无法为我所拥有的手势覆盖VoiceOver手势。我知道UIAccessibilityTraits允许直接交互的可能性:

代码语言:javascript
复制
[mySubView setAccessibilityTraits: UIAccessibilityTraitAllowsDirectInteraction];

问题是,由于我有一张地图,当我允许直接交互时,我就开始与地图交互(平移,缩放等等)。但是,我的目标是保持地图的原样,但通过GestureRecognizers检测手势并执行与它们相关联的操作。

对怎么做有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-14 20:13:25

VoiceOver的直接交互模型支持手势识别器。您所观察到的是与地图的手势处理冲突。考虑到地图视图及其触摸处理的复杂性,我建议采用两种替代方法之一。在这两种情况下,您可能都希望在地图视图上覆盖一个透明的UIView

  1. 将任何手势识别器附加到此自定义视图。用户可以通过直接交互触发快捷方式。您可能希望在运行VoiceOver时对此进行条件化。
  2. 完全避开直接交互,在地图或覆盖视图上实现自定义动作快捷方式。这可能会使其他可访问性功能的用户受益,而不仅仅是VoiceOver。
票数 2
EN

Stack Overflow用户

发布于 2020-08-25 10:10:12

是的,我解决了附加子视图并设置".isAccessibilityElement = true“和".accessibilityTraits = .allowsDirectInteraction”的问题,并将所有手势和覆盖触摸方法引用到添加的视图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41645211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档