2012-01-11 11 views
45

Sto tentando di aggiungere funzionalità di accessibilità a un'app iOS che è già stata sviluppata.Stato iOS Voiceover

Ci sono un paio di caratteristiche dell'interfaccia utente (ad esempio pulsanti) che mi piacciono che vengano visualizzate se l'opzione VoiceOver nel menu di accessibilità delle impostazioni di iPhone è attiva e non viene visualizzata se la voce fuori campo è disattivata.

C'è un modo per verificare se l'opzione voiceover è attiva o no?

risposta

89
BOOL UIAccessibilityIsVoiceOverRunning(); 
25

In viewDidLoad

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


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

Dal iOS11, il nuovo nome di notifica da utilizzare è 'UIAccessibilityVoiceOverStatusDidChange' (SWIFT 4) e 'UIAccessibilityVoiceOverStatusDidChangeNotification' (objC), mentre 'UIAccessibilityVoiceOverStatusChanged' è deprecato.