Запуск последовательности методов - PullRequest
0 голосов
/ 28 марта 2012

Когда я нажимаю кнопку, я хотел бы запустить последовательность методов 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 голосов
/ 28 марта 2012

Вы неоднократно устанавливаете animationImages для одного и того же UIImageView в каждом из этих методов. Каждый раз, когда вы делаете это, он заменяет предыдущий набор и отменяет эту анимацию.

startAnimating не является синхронным, вы выполните methodTwo сразу после methodOne, а не после завершения анимации, определенной в methodOne.

Чтобы получить эффект, который, я полагаю, вы ищете, вы можете создать один больший массив, содержащий изображения из всех трех анимаций в том порядке, в котором вы хотите их циклически проходить. В качестве альтернативы вы можете запланировать вызовы methodTwo и methodThree после завершения предыдущих анимаций, но тогда вам нужно быть готовым отменить эти вызовы, если они больше не нужны или если вы хотите отменить анимацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...