为什么顺序UIViewanimation同时显示?

我已经写了一些代码,依次在屏幕上移动一些对象。 当每个对象完成移动,下一个开始。

代码的结构与此类似:

模型:

moveObject { // Code to move the object ... [delegate moved:self]; } 

代表:

 moved:(MyClass *)o { UIView* v = [self viewForObject:o]; [UIView animateWithDuration:1.0 animations:^{ [v setCenter: [model center]]; } completion:^(BOOL finished){ // Move object [model moveObject]; }]; } 

虽然代码似乎运行良好,但屏幕上发生的事情是,animation被分组为批次:大量的一次都发生,然后另一个组都开始。

如果我在[model moveObject];行放置一个断点[model moveObject]; 然后在没有任何animation被显示在屏幕上的情况下被finished设置为true几次。 然后,偶尔, finished将被设置为false ,并且在我让debugging继续之后,所有的animation将在屏幕上执行。

编辑

但是,如果我更改代码,以便在moveObject被调用时偶尔移动对象,而是返回没有动作的对象,并且等待用户移动对象(并且因此通过委托的moved:select器调用回代码),那么animation的短串顺序发生。

ie问题似乎只发生在代码处于无限循环时。

怎么了?