Ich arbeite an einer iOS 7+ App und möchte den Inhalt eines UILabel animiert ändern. I nicht wollen keine grafische Animation wie alten Inhalt ausblenden/neuen Inhalt einblenden. Somit können alle Standard-Animationsfeatures von iOS wie Layer-Animationen oder Animationsblöcke nicht verwendet werden (zumindest denke ich so).Animiere Text Inhalt in iOS - Equivalent für Android ValueAnimator
Angenommen, das UILabel zeigt einige Zählerwerte wie "200 V" an und dieser Text sollte auf "400 V" geändert werden. Der Text sollte nicht einfach von "200 V" auf "400 V" springen, sondern mit einer Beschleunigungsfunktion hochgezählt werden: "200 V", "220 V", "240 V" ... "390 V", "395 V“... "400 V"
in Android leicht gelöst werden könnten ValueAnimator mit:
ValueAnimator animation = ValueAnimator.ofFloat(0f, 1f);
animation.setInterpolation(new EaseOutInterpolator());
animation.setDuration(2500);
animation.setStartDelay(500);
animation.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpate(ValueAnimator animator) {
float currentValue = animator.getAnimatedValue.floatValue();
label1.setText(String.format("%.2", fromValue1 + ((toValue1 - fromValue1) * currentValue)));
label2.setText(String.format("%.2", fromValue2 + ((toValue2 - fromValue2) * currentValue)));
...
}
});
animation.start();
Ist so etwas in iOS auch dort? Ich habe dafür eine andere Lösung gefunden, aber sie sind alle ziemlich alt (2010/11) und alle implementieren dieses Verhalten manuell mit NSTimer und eigenen Beschleunigungsfunktionen.
Es steht außer Frage, dass man das alleine umsetzen kann, aber das wäre ziemlich umständlich und nicht sehr elegant. Also: Gibt es etwas in iOS gebaut, um dies zu lösen, oder gibt es zumindest praktische Drittanbieter-Implementierung zur Verfügung?
Vielen Dank!
Bitte schreiben Sie, wenn Sie erfolgreich eine Lösung gefunden haben. –
@TommieC. Ich benutzte eine Schleife, aber es ist nicht ganz glatt und es scheint Laggy. Haben Sie schon eine Lösung gefunden? – JayVDiyk
@JayVDiyk - Es wurde noch keine einfache iOS-Lösung gefunden, aber ich habe dieses Beispiel vom Core Animator-Team erhalten: Im Terminal-Fenster klonen Sie das Projekt von bitbucket ~ ** git clone https: //[email protected]/mingsai/odometer-sample .git ** –