Вы должны делать анимацию внутри анимационных блоков:
[UIView animateWithDuration:duration animations:^{
//animation code here
} completion:^(BOOL finished)
{
//this will be called when the animation is finished
}];
edit: этот ответ неправильный и, вероятно, не должен был быть принят, потому что любой, кто приезжает сюда ищет правильный ответ: this отвечает на этот вопрос, я думаю