Gerald Stojakovic
Gerald Stojakovic

Reputation: 101

Sequence Animation using NSTimer

good day.. I have this code.. and this two is for actionAnimating Button and stopAnimating Button..I just want to know if how to make those two button integrate in ONE button.. for example.. I click the button then it animates.. when I click again that actionAnimating Button, i want to cancel/stop the animation at the same time i want to play/animate again.. in short i want to cancel the animation when i click again the actionAnimating button..

-(void)flowerAnimationSequence//START ANIMATION
{
    MotherView.alpha = 0;
    flower.alpha = 0;
    [animationContainer1 removeFromSuperview];
    actselected = YES;

    NSLog(@"start");
    if (((sequenceAnimateCounter == 0) || (sequenceAnimateCounter==1)) && (actselected = YES))
    {
        aImageViewSlideShow = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
        aImageViewSlideShow.tag = 171;
        [self.view addSubview:aImageViewSlideShow];

    }

    if (sequenceAnimateCounter < 183) 
    {
        timer = [NSTimer scheduledTimerWithTimeInterval:0.035 target:self selector:@selector(flowerAnimationSequence) userInfo:nil repeats:NO];
    }

    else if (sequenceAnimateCounter ==183) 
    {
        aImageView = (UIImageView *)[self.view viewWithTag:171];
        NSLog(@"done");
        actselected = NO;
        sequenceAnimateCounter = 0;
        [aImageView removeFromSuperview];
        aImageView = nil;
        [self DefaultPosition];
    }


    aImageView = (UIImageView *)[self.view viewWithTag:171];

    NSString *aStrNumber =  [NSString stringWithFormat:@"%i",sequenceAnimateCounter];
    NSString *aBundlePath = [[NSBundle mainBundle]bundlePath];
    NSString *aImagePath = [NSString stringWithFormat:@"%@/sapatos_%@.png",aBundlePath,aStrNumber];

    [aImageView setImage:[UIImage imageWithContentsOfFile:aImagePath]];
    [self.view bringSubviewToFront: aImageView];
    sequenceAnimateCounter = sequenceAnimateCounter+1;

    if (sequenceAnimateCounter == 1)
    {
        [aImageView removeFromSuperview];
    }
}


-(void)stopanim//STOP BUTTON
{
        [timer invalidate];
        sequenceAnimateCounter =0;
        NSLog(@"stop");
        [aImageView removeFromSuperview];
}

thanks in advance!

Upvotes: 0

Views: 700

Answers (1)

Retterdesdialogs
Retterdesdialogs

Reputation: 3210

Hm...

you want to start/stop in one button?

BOOL isAnimating = NO;

- (void)startStopAnimating 
{
    if (!isAnimating) {
       isAnimating = YES
       // start animation
    } else {
       isAnimating = NO;
       // stop animation
    }
}

Upvotes: 1

Related Questions