如何在UIView animateWithDuration的每次迭代中执行操作

时间:2012-11-23 11:06:21

标签: ios5 animation uiview

我正在使用动画更改视图的大小,我需要在动画的每个步骤中更改该视图中的imageview图像。图像取决于视图大小,这就是我想要这样做的原因。我试图在animations:块中执行此操作,但它似乎只调用一次,而不是像我预期的那样每次迭代。

如何在UIView animateWithDuration:animations:的每次迭代期间执行某些操作。或许我的问题还有其他解决办法吗?

P.S。我曾尝试使用completion:块,但它并没有正确解决我的问题,因为我希望实现图像的平滑更改。

1 个答案:

答案 0 :(得分:0)

如果我给你简单的答案,答案是否定的......

但我有一个替代方案,这个函数可以递归调用,如..

-(void)animationRecursive
{
    [UIView animateWithDuration:0.001 animations:^{
        // Here set frame slide different from last frame use incremental variables
        // for x,y,width,height
        //yourImageView.frame = set frame
        //yourImageView.image = set image
    } completion:^(BOOL finished) {

         if(![yourImage.frame isEqualToString NSStringFromCGRect(yourFinalCGRectAfterAnimation)]
         {
            [self animationRecursive];
         }
    }];

}

希望这会对你有帮助.............