Я анимирую вид между двумя точками, используя UIViewAnimationCurveLinear, поэтому я знаю скорость этой анимации. В определенных обстоятельствах я хочу добавить UIViewAnimationCurveEaseOut, чтобы замедлить представление до остановки. Чтобы сделать этот эффект плавным, анимация замедления должна начинаться с той же скоростью, что и линейная анимация, которая предшествовала ему. Учитывая фиксированное расстояние, на котором я хочу, чтобы это замедление произошло, как я могу вычислить продолжительность, необходимую для достижения этой известной начальной скорости?
Например, допустим, я оживляю свой вид с x = 0 до x = 100 в течение 10 секунд. Скорость составляет 10 пикселей в секунду. Теперь я хочу, чтобы представление замедлялось с x = 100 до x = 120 с помощью анимации UIViewAnimationCurveEaseOut. Какова должна быть продолжительность этой анимации, чтобы она начиналась со скоростью 10 пикселей в секунду?
Насколько я понимаю, функция Core Animation CAMediaTimingFunction управляет шагом анимации, используя кубические кривые Безье, где вторая и третья контрольные точки определяют форму кривой. Я предполагаю, что функции замедления UIViewAnimationCurve также являются кубическими кривыми Безье. Если бы я знал контрольные точки по умолчанию, используемые этими функциями, у меня была бы возможность разработать формулу для вычисления длительности с учетом скорости и расстояния, но мне не удалось найти эти контрольные точки по умолчанию, документированные где-либо.