每次动画重复时调用一个方法

时间:2013-12-17 15:07:40

标签: ios objective-c uikit uianimation

我需要在动画重复之前调用某个方法。 我不知道在哪里放置那行代码。

这是我为对象设置动画的代码:

[UIView animateWithDuration:speed
                      delay:delay
                    options:UIViewAnimationOptionAllowUserInteraction|UIViewAnimationOptionCurveLinear|UIViewAnimationOptionRepeat
                 animations:^(void){

                     cloud.frame = (CGRectMake(cloud.frame.origin.x, cloud.frame.origin.y+600, cloud.frame.size.width, cloud.frame.size.height));

                 }completion:^(BOOL finished){
                     if (finished){
                         [cloud setBackgroundImage:[UIImage imageNamed:@"cloudWhite.png"] forState:UIControlStateNormal];
                     }
                 }];

完成 部分中调用的方法在每次重复之前都不会被执行,但只有在整个动画完成之后才会执行,同时还有al重复 - 在这种情况下 - 从不

我的问题是,如何在每次动画重复之前调用方法?

1 个答案:

答案 0 :(得分:5)

我建议重构动画,使其不使用UIViewAnimationOptionRepeat。相反,编写一个执行动画的单个循环的方法。然后添加一个以递归方式调用该方法的完成方法块。

您还可以在完成块中的动画的每次迭代中放置要触发的方法调用。