CoderNinja
CoderNinja

Reputation: 571

How to animate a UILabel after another

I currently animate two UILabel as such:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2.0];
[_temperatureLabel setAlpha:1];
[_tempDescriptionLabel setAlpha:1];
[UIView commitAnimations];

However, I want to show the first label _temperatureLabel then once that is done animating (or maybe halfway through) start animating the second label _tempDescriptionLabel.

Upvotes: 0

Views: 109

Answers (2)

santhu
santhu

Reputation: 4792

For doing halfWay or any other mid way time,

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2.0];
[_temperatureLabel setAlpha:1];
[UIView commitAnimations];
[self performSelector:@selector(halfWayStart:) withObject:nil afterDelay:1.0];

-(void)halfWayStart:(id)object{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:2.0];
    [_tempDescriptionLabel setAlpha:1];
    [UIView commitAnimations];
}

so, changing the afterDelay time value in performSelector call will help you to start other animation any time.

Upvotes: 0

Ilario
Ilario

Reputation: 6079

as I said I'll answer:

 [UIView animateWithDuration:2 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{

         //set alpha 1 for first UILabel
         _temperatureLabel.alpha = 1;

        } completion:^(BOOL finished){

        [UIView animateWithDuration:2 delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{

                //when finished enter here
            //set alpha 1 for second UILabel
            _tempDescriptionLabel.alpha = 1;

            } completion:^(BOOL finished){


            }];

        }];

remember to add QuartzCore framework, and add #import <QuartzCore/QuartzCore.h>

Upvotes: 2

Related Questions