UIAccessibilityIsVoiceOverRunning() 有多快?

How fast is UIAccessibilityIsVoiceOverRunning()?

在我正在进行的项目中,我记录了各种功能的使用指标,我还想跟踪这些功能在辅助功能模式下的使用频率。为此,我打算使用 UIAccessibilityIsVoiceOverRunning() 函数。

我无法处理,也没有在 documentation 中指定的是从多个地方多次调用它是否会对我的应用程序的整体延迟产生不利影响。我想将其添加到很多指标中,因此我担心此类更改的综合影响。有什么想法吗?

在回答之前,我需要注意:

  1. 注意不要过早优化;这里可能没有问题。
  2. 考虑一下您是否真的想要这个问题的答案。特定产品的绝对用户数量很少支持可访问性。支持访问是一项道德义务,有时甚至是法律义务,并不总是由容易制成表格的业务指标支持。
  3. iOS 上有不止一个 "accessibility mode"。单独衡量 VoiceOver 的使用会忽略许多其他辅助工具及其用户,包括动态类型、切换控制、触摸调节等。

就是说,如果出于某种巧合 UIAccessibilityIsVoiceOverRunning() 对于您的特定用例而言过于昂贵,您可以使用 UIAccessibilityVoiceOverStatusChanged 注册 VoiceOver 状态更改通知并自行缓存该值。