自定义动画:缓和

时间:2018-07-04 16:31:55

标签: swift animation uiview camediatiming

我已经通过使用重复的UIView每隔几毫秒增加图形的alpha值,成功地在Timer的图形中创建了自定义动画。

现在,我想在我的图形上实现缓动动画(减速)。我想通过每次调用Timer时以更长的间隔触发一个新计时器来做到这一点,以使alpha的增量变慢,从而导致减速。

我知道CAMediaTiming中有一个easyOut动画,但是我想知道是否有任何内置函数来获取减速数字。例如,如果我传入常数10,则每次调用该函数时,都会得到减速数字,例如15、18、20、21、21.5等。

1 个答案:

答案 0 :(得分:3)

有一种内置方法可以在标准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以及其他选项。您可以阅读有关动画选项here的更多信息。

您也可以使用完成处理程序闭包来链接动画。


如果您坚持使用计时器来实现自己的动画方式(我不建议这样做),请发布一些代码,以便我可以考虑将曲线应用于变化的值的方法。