Animación UIView resultado inconsistente

Estoy tratando de hacer uso de la animación UIView para deslizar mis vistas a través de la pantalla. Tengo un UIScrollView en mi controlador de vista, en el que tengo mis UIViews.

También tengo este método:

-(void)translateView:(UIView *)view toRect:(CGRect)rect withDuration:(CGFloat)duration
{
    [UIView animateWithDuration:duration
    animations:^
    {
        view.frame = rect;
    }
    completion:^(BOOL finished)
    {
        //Finished
    }];
}

Llamo a esto para mover mi UIView de forma animada a un CGRect de mi elección durante un cierto tiempo. Tengo un bucle que crea y desliza 7 vistas. Esto funciona muy bien, lo llamo como a continuación, el bucle, por supuesto, lo llama 7 veces en diferentes vistas:

[self translateView:cell toRect:translationRect withDuration:0.7];

Sin embargo, no puedo volver a llamar a esto inmediatamente después, simplemente no pasa nada. Aunque, digamos que vuelvo a llamar esto después de un NSTimer de 2 segundos, la animación se ejecuta, pero cuando desplazo mi UIScrollView, la vista que acabo de animar vuelve a su CGRect anterior.

Respuestas a la pregunta(1)

Su respuesta a la pregunta