I am trying to add accessibility features to an iOS app that has already been developed.
There are a couple of UI features (e.g. buttons) that I like them to show up if
In ViewDIdLoad
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(voiceOverStatusChanged)
name:UIAccessibilityVoiceOverStatusChanged
object:nil];
- (void)voiceOverStatusChanged
{
if(!UIAccessibilityIsVoiceOverRunning())
{
//do your changes
}
}
For Swift 4.2, you can check the following boolean provided by UIKit:
UIAccessibility.isVoiceOverRunning
BOOL UIAccessibilityIsVoiceOverRunning();
As a supplement to all the previous correct answers, since iOS11 and according to this Accessibility options recap, the new notification name to be used is :
UIAccessibilityVoiceOverStatusDidChange
(SWIFT < 4.2).UIAccessibilityVoiceOverStatusDidChangeNotification
(ObjC).... while UIAccessibilityVoiceOverStatusChanged
is deprecated.
EDIT for SWIFT 4.2 ==> UIAccessibility.voiceOverStatusDidChangeNotification