Что такое функция частоты кадров и скорости для animateWithDuration

[UIView animateWithDuration: animations:^{}]

Я заменяю использование вышеперечисленного своим собственным методом анимации. Тем не менее, мне очень нравится стандартный эффект, который это имеет.

Итак, мой вопрос, какова частота кадров animateWithDuration?

А что за функция для animateWithDuration? Мне не нужно знать алгоритм для его реализации или что-то еще, только математическое уравнение для скорости / ускорения.

1 ответ

Решение

Функция "скорость" легко проверяется. Анимации CocoaTouch реализованы с использованием Core Animation, а "скорость" реализована с использованием CAMediaTimingFunction:

CAMediaTimingFunction *function = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];

Тогда вы звоните getControlPointAtIndex:values: чтобы получить контрольные точки кривой функции синхронизации (кубический Безье).

Конечно, частота кадров зависит от дисплея устройства, графического процессора (+ другие компоненты HW) и текущей нагрузки. Конечно, вы не должны заботиться о частоте кадров. Работайте только со временем от начала анимации.

Однако замена анимации по умолчанию вашей собственной реализацией почти всегда является ошибкой. Анимации очень просты в использовании, и вы не можете действительно побить их производительность. Если вам нужны более сложные анимации, переходите на более низкий уровень Core Animation возможно. Замена анимации с нуля - это... очень плохая идея.

Другие вопросы по тегам