循环执行动画
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:
方法来提供完成块。当动画结束时,系统将 运行 您的完成块。在块中,您可以决定再次 运行 动画,或者做其他事情,或者什么都不做。
情况很有趣: 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:
方法来提供完成块。当动画结束时,系统将 运行 您的完成块。在块中,您可以决定再次 运行 动画,或者做其他事情,或者什么都不做。