循环执行动画

Execute animation in loop

情况很有趣: NSLog(@"%@", _matrix);

你好,我正在制作这样的动画:

NSLog(@"%f %f", item.frame.origin.x, item.frame.origin.y);


[UIView animateWithDuration:0.4 animations:^{
    item.frame = currentItemFrame;
}];
NSLog(@"%f %f", item.frame.origin.x, item.frame.origin.y);

记录结果

2015-04-02 00:56:52.247 Project15[14543:806921] 49.000000 1.000000
2015-04-02 00:56:52.247 Project15[14543:806921] 1.000000 1.000000

所以坐标改变了,但是,我的对象没有动画。 它仅在 for 循环结束时才显示动画,但我需要在每次迭代时进行绘制。有直接的方法吗?

您不能将动画放入 for 循环中。在您 return 控制主 运行 循环之前动画不会开始,直到您的 for 循环和事件处理程序中的任何其他代码完成 运行宁.

相反,您需要使用 animateWithDuration:animations:completion: 方法来提供完成块。当动画结束时,系统将 运行 您的完成块。在块中,您可以决定再次 运行 动画,或者做其他事情,或者什么都不做。