当我按下一个按钮时,我想运行一系列方法methodOne然后methodTwo然后methodThree。当我现在运行它时,我只能运行最后一个方法。我希望他们按顺序运行。我做错了什么。
@implementation JackAnimationViewController
@synthesize color;
- (IBAction)button:(id)sender {
[self methodOne];
[self methodTwo];
[self methodThree];
}
-(void) methodOne{
color.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"greenDim.png"],
[UIImage imageNamed:@"GreenPressed.png"],
[UIImage imageNamed:@"greenDim.png"],
[UIImage imageNamed:@"GreenPressed.png"],nil];
[color setAnimationRepeatCount:2];
color.animationDuration = 1;
[color startAnimating];}
-(void) methodTwo{
color.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"yellowDim.png"],
[UIImage imageNamed:@"YellowPressed.png"],
[UIImage imageNamed:@"yellowDim.png"],
[UIImage imageNamed:@"YellowPressed.png"],nil];
[color setAnimationRepeatCount:2];
color.animationDuration = 1;
[color startAnimating];}
-(void) methodThree{
color.animationImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"yellowDim.png"],
[UIImage imageNamed:@"GreenPressed.png"],
[UIImage imageNamed:@"yellowDim.png"],
[UIImage imageNamed:@"GreenPressed.png"],nil];
[color setAnimationRepeatCount:2];
color.animationDuration = 1;
[color startAnimating];}
@end
答案 0 :(得分:0)
您正在为每种方法中的animationImages
重复设置UIImageView
。每次执行此操作时,它将替换先前的设置并取消该动画。
startAnimating
不是同步的,您将在methodTwo
之后立即执行methodOne
,而不是在methodOne
中定义的动画结束时执行。{/ p>
为了获得效果,我相信你正在寻找你可以构建一个更大的数组,其中包含所有三个动画中的图像,按照你想要循环它们的顺序。
或者,您可以在先前的动画完成后调度methodTwo
和methodThree
,但是如果不再需要这些调用或者您想要取消动画,则需要准备取消这些调用。