ImageView动画重复

时间:2013-01-30 05:43:39

标签: ios animation uiimageview

我正在开发一个需要使用imageView动画的应用程序。 在开始时,图像的位置在CGPoint(735,112)处,在点击动画按钮时,它必须移动到屏幕的左边,即指向CGPoint(20,112),并且从左到右重复动画,即指向CGPoint( 735,112),此后必须停止。我使用以下代码。

CGRect newRect=cleanStrip.frame;
[UIView beginAnimations:@"animation1" context:nil];
[UIView setAnimationDuration:3.0];
[UIView setAnimationDelegate:self];
[UIView setAnimationRepeatAutoreverses:YES];
newRect.origin.x=20;
cleanStrip.frame=newRect;
[UIView commitAnimations];

重复动画后,图像视图必须停在原始位置CGPoint(735,112)。但是上面的代码会停止CGPoint(20,112)处的图像。

如何在动画后将图像停在原始位置。 谢谢,

1 个答案:

答案 0 :(得分:3)

您可以使用块来启动动画

__block CGRect newRect=cleanStrip.frame;
__block int originx = newRect.origin.x;
[UIView animateWithDuration:2.0
             animations:^{
                 newRect.origin.x=20;
                 cleanStrip.frame=newRect;
             }
             completion:^(BOOL finished){
                 [UIView animateWithDuration:2.0
                                  animations:^{
                                       newRect.origin.x=originx ;
                                       cleanStrip.frame=newRect;
                                  }];

             }];