Я работаю над приложением iOS 7+ и хотел бы анимировать изменение содержимого UILabel. Я не хочу делать какую-либо графическую анимацию, например, исчезать из старого контента/исчезать в новом контенте. Таким образом, все стандартные функции анимации iOS, такие как анимация Layer или блоки анимации, не могут использоваться (по крайней мере, я так думаю).
Предположим, что UILabel показывает некоторые значения в метрах, например "200 В" , и этот текст следует изменить на "400 В". Текст должен не просто переходить с "200 В" на "400 В", а подсчитываться с использованием некоторой функции ослабления: "200 В" , "220 В", "240 В"... "390 В", "395 V"... "400 В"
В Android можно легко решить с помощью ValueAnimator:
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();
Есть ли такая вещь в iOS? Я нашел другое решение для этого, но все они довольно старые (2010/11), и все это в конечном итоге реализует это поведение вручную, используя NSTimer и собственные функции ослабления.
Не исключено, что это можно реализовать самостоятельно, но это было бы довольно громоздким и не очень элегантным. Итак: есть ли что-то в iOS для решения этой проблемы или существует ли хотя бы удобная сторонняя реализация?
Большое спасибо!