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.
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.