2010-04-28 64 views
1

嘿,所有的,在这里有一个小问题,并不能弄清楚我做错了什么。我正在尝试向上和向下反复动画UIView。当我开始播放时,它会正确地下降然后备份,但会立即开始播放到动画的“最终”位置。代码如下:iPhone - UIView动画没有正确循环

UIImageView *guide = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]]; 
    guide.frame = CGRectMake(250, 80, 30, 30); 

    [self.view addSubview:guide]; 

    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    [UIView setAnimationDuration:2]; 
    [UIView setAnimationRepeatAutoreverses:YES]; 
    [UIView setAnimationBeginsFromCurrentState:YES]; 

    guide.frame = CGRectMake(250, 300, 30, 30); 

    [UIView setAnimationRepeatCount:10]; 
    [UIView commitAnimations]; 

在此先感谢!

回答

0

你可以设置setAnimationDidStopSelector自定义函数和自定义功能,您可以设置多个动画(甚至递归)。看到我对另一个问题的回答here

通常我会定义一个动画结构(AnimationPath in the example)来协调整个动画(比如说一个计数器)。

3

这是一个老问题,但如果有人正在看这个,你可以使用分数重复计数来结束所需的状态。如果您从A动画到B并使用自动反转,则每个重复将如下所示:A - > B - > A.由于您想在最后一个动画上以B结尾,而不是A,只需做到最后一次只重复中途(到B):

[UIView setAnimationRepeatCount:10.5]; 

就是这样!