78 votos

Animar UILabel de texto entre dos números?

Soy nuevo en el iPhone y el Mac de programación (desarrollado para Windows antes), y tengo una pregunta:

¿Cómo puedo animar la propiedad text de un UILabel entre dos números, por ejemplo, de 5 a 80 en una Facilidad Fuera de estilo? Es posible que con el Núcleo de la Animación? Estaba buscando en google para una hora, pero yo aun no encontrado nada en la solución de mi problema... Lo que yo quiero: Animar el dinero a los usuarios por un simple juego. No se ven muy bien cuando se va de los 50 a los 100 o algo así, sin animación.

Cualquiera que tenga una idea de cómo hacer eso?

Gracias!

158voto

CedricSoubrie Puntos 3008

Usted puede utilizar el sistema automático de transiciones. Funciona a la perfección :

// Add transition (must be called after myLabel has been displayed)
 CATransition *animation = [CATransition animation];
animation.duration = 1.0;
animation.type = kCATransitionFade;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[myLabel.layer addAnimation:animation forKey:@"changeTextTransition"];

// Change the text
myLabel.text = newText;

Este código funciona si myLabel ya se ha mostrado. Si no myLabel.capa será nula y la animación no será añadido al objeto.

26voto

Anton Gaenko Puntos 331

Funciona bien!

[UIView transitionWithView:self.label duration:.5f options:UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionTransitionCrossDissolve animations:^{
    self.label.text = rand() % 2 ? @"111!" : @"42";
  } completion:nil];

7voto

jowie Puntos 3733

Me encontré con un gran motor para la interpolación de los valores con una variedad de diferentes funciones de temporización llamado PRTween. Instalar las clases y crear algo de código a lo largo de estas líneas:

- (IBAction)tweenValue
{
    [[PRTween sharedInstance] removeTweenOperation:activeTweenOperation];
    PRTweenPeriod *period = [PRTweenPeriod periodWithStartValue:0.0 endValue:100.0 duration:1.0];
    activeTweenOperation = [[PRTween sharedInstance] addTweenPeriod:period
                                                             target:self
                                                           selector:@selector(update:)
                                                     timingFunction:&PRTweenTimingFunctionCircOut];
}

- (void)update:(PRTweenPeriod*)period
{
    self.animatingView.center = CGPointMake(period.tweenedValue + 100.0, 200.0);
    self.valueLabel.text = [NSString stringWithFormat:@"%.2f", period.tweenedValue];
}

Funciona de maravilla para mí. :)

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X