使 UIAccessibilityTrait 可调整忽略双击(如按钮)swift
make UIAccessibilityTrait adjustable ignore double-tap (like a button) swift
我有一个自定义控件来递增和递减值。现在我已经添加了对画外音的支持,我偶然发现了一个问题。
我的 customView 具有可访问性特征 .adjustable
并且我实现了增加和减少值的正确方法。
但是,画外音用户也可以双击该视图以将其激活。问题是,这会触发与用户语音无关的手势。
有没有一种方法可以防止可调整的辅助功能视图被激活,以便该元素只能调整,而不是像按钮那样可以双击?
当 double-tap 发生时,有两个重要的属性需要知道:
在您的情况下,您可以通过覆盖 accessibilityActivate
来 return true,如果这还不够,还提供一个不触发任何内容的 CGPoint 坐标 (取决于您的自定义控制及其邻域).
否则,使用 accessibilityElementIsFocused
实例方法来了解您是否可以在 complete example 出现时触发操作。
我最终使用 UIAccessibility.isVoiceOverRunning 来停止任何由双击该特定元素触发的任务。
我有一个自定义控件来递增和递减值。现在我已经添加了对画外音的支持,我偶然发现了一个问题。
我的 customView 具有可访问性特征 .adjustable
并且我实现了增加和减少值的正确方法。
但是,画外音用户也可以双击该视图以将其激活。问题是,这会触发与用户语音无关的手势。
有没有一种方法可以防止可调整的辅助功能视图被激活,以便该元素只能调整,而不是像按钮那样可以双击?
当 double-tap 发生时,有两个重要的属性需要知道:
在您的情况下,您可以通过覆盖 accessibilityActivate
来 return true,如果这还不够,还提供一个不触发任何内容的 CGPoint 坐标 (取决于您的自定义控制及其邻域).
否则,使用 accessibilityElementIsFocused
实例方法来了解您是否可以在 complete example 出现时触发操作。
我最终使用 UIAccessibility.isVoiceOverRunning 来停止任何由双击该特定元素触发的任务。