Tengo un UILabel que muestra la puntuación de los usuarios. Y puntuar los cambios de vez en cuando, ¿hay alguna manera de animar este cambio, para incrementar lentamente este número desde su valor actual hasta su valor de resultado? Algo así como http://josheinstein.com/blog/index.php/2010/02/silverlight-animated-turbotax-number-display/ pero para objetivo-c.UILabel cambio de número de animación
Respuesta
Use CADisplayLink para cambiar la propiedad de texto de la subclase personalizada de UILabel durante un período de tiempo. Probablemente desee utilizar un NSNumberFormatter
para una salida más bonita.
// Create instance variables/properties for: `from`, `to`, and `startTime` (also include the QuartzCore framework in your project)
- (void)animateFrom:(NSNumber *)aFrom toNumber:(NSNumber *)aTo {
self.from = aFrom; // or from = [aFrom retain] if your not using @properties
self.to = aTo; // ditto
self.text = [from stringValue];
CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(animateNumber:)];
startTime = CACurrentMediaTime();
[link addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
}
- (void)animateNumber:(CADisplayLink *)link {
static float DURATION = 1.0;
float dt = ([link timestamp] - startTime)/DURATION;
if (dt >= 1.0) {
self.text = [to stringValue];
[link removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
return;
}
float current = ([to floatValue] - [from floatValue]) * dt + [from floatValue];
self.text = [NSString stringWithFormat:@"%i", (long)current];
}
Nota: si utiliza un 'NSNumberFormatter', cree uno de ellos y vuelva a utilizarlo para cada trabajo de formato que use el mismo formato. Crear un nuevo 'NSNumberFormatter' es bastante caro, pero reutilizar uno existente es barato. –
Sigo recibiendo EXC_BAD_ACESS en 'float current = ([to floatValue] - [from floatValue]) * dt + [from floatValue]'; – Drabuna
¿está usando propiedades para las variables 'from' y' to'? y está configurado para 'retener'? Si no está utilizando propiedades, 'from = [aF retener]' –
AUIAnimatedText
tiene todo lo que estaba pidiendo. Es un reemplazo para UILabel con posibilidades de animación de texto de alcance,
- 1. Marco de animación de UILabel sin problemas
- 2. Animación del tamaño de UILabel disminución
- 3. jQuery Hover animación de cambio de imagen
- 4. cambio de tamaño de animación en wikipedia
- 5. Animación de UILabel con CoreAnimation/QuartzCore en la aplicación iOS
- 6. Animación ANTES del cambio de actividad
- 7. iOS: ¿se está animando el cambio de tamaño de texto en UILabel o UITextView?
- 8. Cómo encontrar el número de líneas de UILabel
- 9. ¿Cómo cambio la animación predeterminada cuando cambio la actividad?
- 10. establecer el número máximo de líneas en uilabel
- 11. cómo simular la animación de cambio de aplicación incorporada?
- 12. ¿Cómo cambio el estilo de animación de un jQuery Accordion?
- 13. Autosize UILabel
- 14. ¿Cómo cambio la imagen de fondo usando la animación jQuery?
- 15. ¿Cómo cambio una posición de fondo con animación css3?
- 16. Expansión Multiline UILabel
- 17. Obtener ancho de la última línea de UILabel UILabel
- 18. ¿Animar a UILabel pulsante?
- 19. truncamiento de cola uilabel
- 20. cambio de posición del navigationItem.title
- 21. Opacidad diferente para UILabel y el texto de UILabel
- 22. Animación de color de texto UIButton
- 23. Animate UILabel no es liso
- 24. cambio de monedas con un número limitado de monedas
- 25. Declaración de cambio con un gran número de casos
- 26. Cambio Bits para multiplicar por cualquier número
- 27. iPhone UILabel sizeWithFont:
- 28. UILabel cambio automático de tamaño en función del texto que se mostrará
- 29. Multiline UILabel?
- 30. UILabel - autoresize
me pareció que podría ser útil http://stackoverflow.com/questions/3073520/setting-new-text-to-uilabel-and-animation ** Primer vistazo de respuesta * * – wczekalski
Sí, lo vi, no exactamente la animación que estoy buscando. – Drabuna