Unusual animateWithDuration behaviour in viewDidLoad
You never need to call it in viewDidLoad
. That's simply wrong and it won't work. Move the code intoviewDidAppear
. If you have reasons to put it into viewDidLoad
, fix the reasons!
EDIT: You never know when viewDidLoad
is called - it can even be called multiple times for one controller. Usually the problem with slow animations is caused by a collision between two animations. For example, if your controller is animated to the screen by a UINavigationController
, your animation will collide with the "push" animation and they will be slow. That's why you are supposed to use viewDidAppear
because when this method is called you know that the controller is displayed and the "appear" animation has ended.