Search code examples
iosiphoneobjective-ccore-animation

Flipping the UILabel


I want to use the CABasicAnimation to flip the UILabel. Animation will repeat forever and will change the text of UILabel between two different values.

- (void)animateLabel
{
     [self.myLabel.layer addAdnimation:[self labelAnimation]  forKey:@"flip"];
}

- (CAAnimation*)labelAnimation
{
     CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"];
     [animation setRepeatCount:NSIntegerMax];
     [animation setAutoreverses:YES];
     [animation setDuration:2.0];
     [animation setDelegate:self];
     CATransform3D transform = CATransform3DMakeRotation(M_PI_2, 1, 0, 0);
     [animation  setToValue:[NSValue valueWithCATransform3D:transform]];
     return animation;
}

Now, I tried using the delegate but the delegate method is only when the animation first begins. Rather I need to be able to know the the label completes one cycle. Is there some convenience method or way to do it with CALayer or do I have to use CADisplay link or timer ? I would like to thank you before hand for helping me.


Solution

  • No, this is the way you're supposed to do it according to the documentation.

    Setting this property to HUGE_VALF will cause the animation to repeat forever.