我通过淡入淡出4个不同的图像制作一个简单的图像旋转器。它很有效,直到最后,我想重复所有四个动画。
我尝试过重复计数,但这只适用于那个特定的动画。如何创建整个循环?
我的代码如下。提前谢谢!
[UIView beginAnimations:nil context:nil];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:slideshow cache:YES];
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:3];
[UIView setAnimationRepeatAutoreverses:YES];
[UIView setAnimationDelay:3];
imageOne.alpha = 0;
imageTwo.alpha = 1;
[UIView setAnimationDelay:6];
imageTwo.alpha = 0;
imageThree.alpha = 1;
[UIView setAnimationDelay:9];
imageThree.alpha = 0;
imageFour.alpha = 1;
[UIView commitAnimations];
答案 0 :(得分:2)
您可以首先为动画添加名称,而不是beginAnimations:nil
,而是放置beginAnimations: @"Button Animations"
或类似内容。此外,您应该将动画的委托设置为self。这可以通过在动画块中添加以下代码行来完成:
[UIView setAnimationDelegate: self];
然后,您可以将整个动画块放入它自己的类方法中(在视图控制器中)。让我们称之为doAnimation。这只是为了安全措施。接下来你应该做的是在视图控制器中实现这个委托函数:
-(void) animationDidStop: (NSString *) animationID finished:(NSNumber *)finished context:(void *)context{
if([animationID isEqualToString:@"Button Animation"]){
[self doAnimation];
}
}
因此,这将确保您的动画重复。如果这种方法不起作用,请告诉我,我没有测试过。但我认为它会起作用。