由于辅助功能设置未检测到 iOS 手势

Posted

技术标签:

【中文标题】由于辅助功能设置未检测到 iOS 手势【英文标题】:iOS Gesture not detected due to accessibility settings 【发布时间】:2011-07-05 13:52:56 【问题描述】:

我正在开发的应用程序需要三点滑动手势。

我已经使用UIGestureRecognizer 成功实现了这一点,并且大部分情况下都可以正常工作。

但是,如果您打开设备缩放辅助功能设置(设置 > 常规 > 辅助功能 > 缩放),则会停止识别手势。

缩放功能使用各种三点手势来操作,所以我可以理解这个取代我的应用程序手势。

但是,有谁知道我如何确定缩放设置是否已打开(或执行缩放辅助手势),以便我至少可以告知用户该手势将不会被识别?

谢谢!

【问题讨论】:

您是继承UIGestureRecognizer 还是使用UISwipeGestureRecognizer 并将numberOfTouchesRequired 属性设置为三个? 我使用了UISwipeGestureRecognizernumberOfTouchesRequired 设置为三个 您可以检测到三指和四指滑动... 谢谢 tc。不幸的是,客户不允许这样做……这是应用程序的一个非常具体的 UI 要求。 【参考方案1】:

如果您的目标是 ios 5,请查看 UIAccessibilityRegisterGestureConflictWithZoom()。虽然它不会告诉您 Zoom 是否已启用,但它会在发生冲突时通知您的用户。

【讨论】:

【参考方案2】:

我会使用 if 语句来检查用户是否启用了可访问性,如果启用,则让您的应用执行四指滑动。

if (isAccessabilityElement)

?你试过吗?

【讨论】:

感谢您的建议,但是此属性表示残障用户可以访问控件。 (例如,所有标准 UIKit 控件默认返回 YES)。不幸的是,这并不能告诉我用户是否打开了辅助功能设置。【参考方案3】:

在 UIScrollView 委托方法中有一个选项可以确定是缩放设置还是未设置 但是除了滑动手势识别器之外,您还可以尝试使用 UIPinchGestureREcognizer。 如需更多信息,您可以查看苹果的开发者文档。

【讨论】:

以上是关于由于辅助功能设置未检测到 iOS 手势的主要内容,如果未能解决你的问题,请参考以下文章

Android检测辅助功能是不是开启

ios10自定手势有啥用

如何在 swift 中使用辅助功能中的点击手势?

设计好用的触控操作手势

Android辅助功能基本操作

iOS UI 测试失败,因为“应用程序未运行,无法获取辅助功能数据。您调用 -launch 了吗?”