I\'m setting up the following UIView animateWithDuration: method, with the intention of setting my animationOn BOOL elsewhere in the program to can
The completion block will only get called when the animation is interrupted. For example it gets called when the app goes in the background and comes back to the foreground again (via multitasking). In that case the animation is stopped. You should restart the animation when that happens.
To stop the animation you can remove it from the view's layer:
[button.layer removeAllAnimations];