为什么顺序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问题似乎只发生在代码处于无限循环时。
怎么了?