运行一系列方法

时间:2012-03-28 00:02:50

标签: iphone

当我按下一个按钮时,我想运行一系列方法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

1 个答案:

答案 0 :(得分:0)

您正在为每种方法中的animationImages重复设置UIImageView。每次执行此操作时,它将替换先前的设置并取消该动画。

startAnimating不是同步的,您将在methodTwo之后立即执行methodOne,而不是在methodOne中定义的动画结束时执行。{/ p>

为了获得效果,我相信你正在寻找你可以构建一个更大的数组,其中包含所有三个动画中的图像,按照你想要循环它们的顺序。 或者,您可以在先前的动画完成后调度methodTwomethodThree,但是如果不再需要这些调用或者您想要取消动画,则需要准备取消这些调用。