由于辅助功能设置未检测到 iOS 手势
Posted
技术标签:
【中文标题】由于辅助功能设置未检测到 iOS 手势【英文标题】:iOS Gesture not detected due to accessibility settings 【发布时间】:2011-07-05 13:52:56 【问题描述】:我正在开发的应用程序需要三点滑动手势。
我已经使用UIGestureRecognizer
成功实现了这一点,并且大部分情况下都可以正常工作。
但是,如果您打开设备缩放辅助功能设置(设置 > 常规 > 辅助功能 > 缩放),则会停止识别手势。
缩放功能使用各种三点手势来操作,所以我可以理解这个取代我的应用程序手势。
但是,有谁知道我如何确定缩放设置是否已打开(或执行缩放辅助手势),以便我至少可以告知用户该手势将不会被识别?
谢谢!
【问题讨论】:
您是继承UIGestureRecognizer
还是使用UISwipeGestureRecognizer
并将numberOfTouchesRequired
属性设置为三个?
我使用了UISwipeGestureRecognizer
,numberOfTouchesRequired
设置为三个
您可以检测到三指和四指滑动...
谢谢 tc。不幸的是,客户不允许这样做……这是应用程序的一个非常具体的 UI 要求。
【参考方案1】:
如果您的目标是 ios 5,请查看 UIAccessibilityRegisterGestureConflictWithZoom()
。虽然它不会告诉您 Zoom 是否已启用,但它会在发生冲突时通知您的用户。
【讨论】:
【参考方案2】:我会使用 if 语句来检查用户是否启用了可访问性,如果启用,则让您的应用执行四指滑动。
if (isAccessabilityElement)
?你试过吗?
【讨论】:
感谢您的建议,但是此属性表示残障用户可以访问控件。 (例如,所有标准 UIKit 控件默认返回 YES)。不幸的是,这并不能告诉我用户是否打开了辅助功能设置。【参考方案3】:在 UIScrollView 委托方法中有一个选项可以确定是缩放设置还是未设置 但是除了滑动手势识别器之外,您还可以尝试使用 UIPinchGestureREcognizer。 如需更多信息,您可以查看苹果的开发者文档。
【讨论】:
以上是关于由于辅助功能设置未检测到 iOS 手势的主要内容,如果未能解决你的问题,请参考以下文章