mablecable
mablecable

Reputation: 385

animation not firing

I have a simple explosion animation that works just fine in any method in my class. However I want to call it once the timer runs out, from the timer update method. The problem is it will not work from here for whatever reason (something to do with the timer surely). It simply unhides my image.. no animation. I cannot figure out how to get it to work.

- (void)explosionAnimation
{
    imgExplosion.hidden=FALSE;

    //set starting point of explosion
    CGRect explosionFrame = self.imgExplosion.frame;
    explosionFrame.origin.x = explosionFrame.origin.y = -960.0f;
    explosionFrame.size.width = explosionFrame.size.height = 1920.0f;

    [UIView animateWithDuration:1.5f animations:^{
        self.imgExplosion.frame = explosionFrame;
    } completion:^(BOOL finished) {
        self.imgExplosion.hidden = YES;
    }];
}

-(void) createTimer
{
    // Create timer instance
    if (timer != nil){

        [timer invalidate];
        hasTimerStarted = NO;
    }

    // Initialize the timer.
    timer = [NSTimer scheduledTimerWithTimeInterval:1.0
                                           target:self
                                           selector:@selector(timerUpdater)
                                           userInfo:nil repeats:YES];
}

- (void)timerUpdater{

    if(!hasTimerStarted){
        intTotalSeconds = [strTotalNumberofSeconds intValue];

        hasTimerStarted = YES;
    }
    else{
        intTotalSeconds--;

        self.lblTimer.text = [self revertTimeToString:intTotalSeconds];
    }

    // if totalSeconds hits zero, then time is up! You lose!
    if (intTotalSeconds == 0){
        [timer invalidate];

        [self explosionAnimation];

        hasTimerStarted = NO;

        [self addPlayAgainButton];
    }
}

Upvotes: 0

Views: 48

Answers (1)

Rahul Vyas
Rahul Vyas

Reputation: 28720

Try putting some delay or call explosion method on Main Thread like

[self performSelector:@Selector(explosionAnimation) withObject:nil afterDelay:1.0];

Upvotes: 2

Related Questions