Что такое функция частоты кадров и скорости для animateWithDuration
[UIView animateWithDuration: animations:^{}]
Я заменяю использование вышеперечисленного своим собственным методом анимации. Тем не менее, мне очень нравится стандартный эффект, который это имеет.
Итак, мой вопрос, какова частота кадров animateWithDuration?
А что за функция для animateWithDuration? Мне не нужно знать алгоритм для его реализации или что-то еще, только математическое уравнение для скорости / ускорения.
1 ответ
Функция "скорость" легко проверяется. Анимации CocoaTouch реализованы с использованием Core Animation, а "скорость" реализована с использованием CAMediaTimingFunction
:
CAMediaTimingFunction *function = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut];
Тогда вы звоните getControlPointAtIndex:values:
чтобы получить контрольные точки кривой функции синхронизации (кубический Безье).
Конечно, частота кадров зависит от дисплея устройства, графического процессора (+ другие компоненты HW) и текущей нагрузки. Конечно, вы не должны заботиться о частоте кадров. Работайте только со временем от начала анимации.
Однако замена анимации по умолчанию вашей собственной реализацией почти всегда является ошибкой. Анимации очень просты в использовании, и вы не можете действительно побить их производительность. Если вам нужны более сложные анимации, переходите на более низкий уровень Core Animation
возможно. Замена анимации с нуля - это... очень плохая идея.