Ho un UILabel che visualizza il punteggio degli utenti. E il punteggio cambia di volta in volta, c'è un modo per animare questo cambiamento, per incrementare lentamente questo numero dal suo valore attuale al suo valore di risultato? Qualcosa come http://josheinstein.com/blog/index.php/2010/02/silverlight-animated-turbotax-number-display/ ma per obiettivo-c.UILabel modifica numero animazione
risposta
Utilizzare un CADisplayLink per modificare la proprietà di testo della sottoclasse personalizzata di UILabel per un certo periodo di tempo. Probabilmente vorrai usare uno NSNumberFormatter
per un'uscita più carina.
// 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: se si utilizza "NSNumberFormatter', crearne uno e riutilizzarlo per ogni lavoro di formattazione che utilizza lo stesso formato. Creare un nuovo 'NSNumberFormatter' è piuttosto costoso, ma riutilizzare uno esistente è economico. –
Continuo a ricevere EXC_BAD_ACESS a 'float current = ([a floatValue] - [da floatValue]) * dt + [da floatValue]'; – Drabuna
stai usando le proprietà per le variabili 'from' e' to'? ed è impostato su 'retain'? Se non stai usando le proprietà fai 'from = [aDa conservare]' –
AUIAnimatedText
ha tutto quello che stavi chiedendo. Questa è la sostituzione di UILabel con possibilità di animare il testo di copertura,
- 1. Rileva modifica nel testo UILabel
- 2. Modifica target animazione
- 3. iOS - Animazione della modifica della dimensione del testo in UILabel o UITextView?
- 4. WPF MVVM Modifica Proprietà Animazione
- 5. dissolvenza in apertura, dissolvenza in animazione su uilabel
- 6. UILabel min dimensione carattere numero ombra
- 7. Modifica del margine di animazione in Silverlight
- 8. Modifica dello stile di animazione di ViewPager
- 9. Android Alpha Fade in animazione Numero
- 10. UILabel multilinea espandibile
- 11. Autosize UILabel
- 12. [Objective-C] Modifica UILabel senza nascondere la tastiera
- 13. Modifica formato numero in renderDataTable
- 14. imposta il numero massimo di righe in uilabel
- 15. Come animare il numero di incremento in UILabel in swift
- 16. Come animare il numero di incremento in UILabel
- 17. Determina il numero di caratteri troncati in UILabel
- 18. Animare il frame di UILabel senza problemi
- 19. Testo UILabel non aggiornato
- 20. Come faccio a dissolvere il testo in un UILabel?
- 21. Animazione per Qml Loader quando si modifica loader.source
- 22. Animazione della modifica della dimensione di una maschera di CALayer
- 23. UIView transitionWithView Modifica delle proprietà di animazione: scorrere da destra?
- 24. iOS - Modifica del controller della vista radice con animazione
- 25. Animazione quando si modifica la visualizzazione del testo
- 26. Frammento perso animazione della transizione dopo la modifica della configurazione
- 27. Ruby: modifica il numero negativo in numero positivo?
- 28. Sottoclasse UILabel
- 29. UILabel - AutoResize
- 30. UILabel Barrato
ho trovato che potrebbe essere utile http://stackoverflow.com/questions/3073520/setting-new-text-to-uilabel-and-animation ** Primo sguardo per risposta * * – wczekalski
Sì, l'ho visto, non esattamente l'animazione che sto cercando. – Drabuna