69

既に開発されている iOS アプリにアクセシビリティ機能を追加しようとしています。

iPhone 設定のアクセシビリティ メニューの VoiceOver オプションがオンの場合に表示され、ナレーションがオフの場合は表示されない UI 機能 (ボタンなど) がいくつかあります。

ボイスオーバー オプションがオンになっているかどうかを確認する方法はありますか?

4

4 に答える 4

119
BOOL UIAccessibilityIsVoiceOverRunning();
于 2012-01-11T23:21:33.800 に答える
33

ビューでDIdLoad

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


- (void)voiceOverStatusChanged
{
    if(!UIAccessibilityIsVoiceOverRunning())
    {
        //do your changes
    }
}
于 2013-12-05T10:11:46.990 に答える
3

以前のすべての正解の補足として、iOS11 以降、このアクセシビリティ オプションの要約に従って、使用される新しい通知名は次のとおりです。

  • UIAccessibilityVoiceOverStatusDidChange(スイフト < 4.2)。
  • UIAccessibilityVoiceOverStatusDidChangeNotification(オブジェクト)。

... whileUIAccessibilityVoiceOverStatusChangedは非推奨です。

SWIFT 4.2編集==>UIAccessibility.voiceOverStatusDidChangeNotification

于 2018-03-06T13:22:45.320 に答える