Пользовательская анимация: облегчение - PullRequest
0 голосов
/ 04 июля 2018

Я успешно создал пользовательскую анимацию на чертеже в UIView, используя повторяющийся Timer для увеличения альфа-канала чертежа каждые несколько миллисекунд.

Теперь я хочу добиться замедления анимации (замедления) с помощью своего рисунка. Я хотел бы сделать это, используя новый таймер с более длинным интервалом каждый раз, когда вызывается Timer, так что альфа увеличивается медленнее, что приводит к замедлению.

Я знаю, что есть анимация easeOut от CAMediaTiming, но я хотел бы знать, есть ли встроенная функция для получения замедляющих чисел. Например, если я передам константу 10, каждый раз, когда я вызываю функцию, я могу получить замедляющие числа, такие как 15, 18, 20, 21, 21,5 и т. Д.

1 Ответ

0 голосов
/ 04 июля 2018

Существует встроенный способ использовать различные виды кривых анимации в стандартных UIView анимациях.

var yourView = UIView() // Or whatever your view might be

var yourView.alpha = 0 // Initial alpha value

// Call the animation method. Note options (which can be an array) which applies an ease-out curve to the animation
UIView.animate(withDuration: 1.0, delay: 0.0, options: .curveEaseOut, animations: {
    yourView.alpha = 1.0 // Final value of alpha
}, completion: nil)

Доступны другие анимационные кривые, такие как .curveEaseIn и .curveEaseInOut, а также другие параметры. Подробнее о параметрах анимации можно прочитать здесь .

Вы также можете использовать закрытие обработчика завершения для цепочки анимаций.


Если вы настаиваете на реализации собственных средств анимации с использованием таймера (который я бы не рекомендовал), опубликуйте некоторый код, чтобы я мог рассмотреть способ применения кривой к изменяющимся значениям.

...