iOS画外音状态

时间:2012-01-11 22:56:18

标签: ios accessibility voiceover uiaccessibility

我正在尝试为已经开发的iOS应用添加辅助功能。

如果iPhone设置的辅助功能菜单中的VoiceOver选项打开,并且如果关闭配音时没有显示,则我希望它们显示一些UI功能(例如按钮)。

有没有办法检查画外音选项是否打开?

4 个答案:

答案 0 :(得分:104)

BOOL UIAccessibilityIsVoiceOverRunning();

答案 1 :(得分:30)

在ViewDIdLoad中

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(voiceOverStatusChanged)
                                             name:UIAccessibilityVoiceOverStatusChanged
                                           object:nil];


- (void)voiceOverStatusChanged
{
    if(!UIAccessibilityIsVoiceOverRunning())
    {
        //do your changes
    }
}

答案 2 :(得分:3)

作为以前所有正确答案的补充,自iOS11起,使用的新通知名称为:

  • UIAccessibilityVoiceOverStatusDidChange(SWIFT< 4.2)。
  • UIAccessibilityVoiceOverStatusDidChangeNotification(ObjC)。

...不推荐使用UIAccessibilityVoiceOverStatusChanged

SWIFT 4.2 ==>

编辑 UIAccessibility.voiceOverStatusDidChangeNotification

答案 3 :(得分:3)

对于Swift 4.2,您可以检查UIKit提供的以下布尔值:

UIAccessibility.isVoiceOverRunning