Animation can be turned off for the entire application whenever an attempt is made to animate representations in a background thread, for example. by calling one of the UIView animateWithDuration:animations: method families of the class from the background thread. Be sure to update the user interface of the application only from the main thread.
You can check if the code works in the main thread by testing [NSThread currentThread].isMainThread , and you can make sure that it works on the main thread, for example:
dispatch_async(dispatch_get_main_queue(), ^(void) {
Alternatively, make sure that you do not call [UIView setAnimationsEnabled:NO] anywhere, as this will also disable animation for the entire application.
source share