缓解时间的实施

时间:2012-12-17 12:26:40

标签: iphone ios ipad

我有一个方法setPercentCompleted的组件,我希望在距离例如{在1秒的过程中500分。

为了做到这一点,我只需将计时器设置为一定的间隔,并在每次计时器触发时调用setPercentCompleted

如何使用ease-out曲线实现此功能?

2 个答案:

答案 0 :(得分:1)

这非常像物理问题。

你需要以一定的“减速度”以给定的“速度”出发,以便在给定时间(1.0秒)内达到给定的“位移”(1.0)。

您需要确定的2个数字是初始速度和所需的减速度。

使用SUVAT并在s = 1和t = 1中替换。

你来自

s = ut + 1/2 * at^2

a = 2 - 2u

只要你的初始速度(u)和你应用的加速度(a)使这个方程有效,那么你将达到1秒1的距离。

您可以通过将数字放入电子表格来查看效果。您必须在0和2之间选择一个u值,这将使所需的加速度在1秒内达到1.0。

你有一个你的金额的起始值,然后每次用你的值加速它。

事实上,选择0到1之间的u值会产生“缓入”效果。选择1到2之间的u值将给出“缓和”效果。

答案 1 :(得分:0)

实现缓动函数有许多不同的方程式。你可以从这个JQuery easing plugin中获得灵感。 source code应该足够简单,可以轻松地移植到Objective C。