我有一个方法setPercentCompleted
的组件,我希望在距离例如{在1秒的过程中500分。
为了做到这一点,我只需将计时器设置为一定的间隔,并在每次计时器触发时调用setPercentCompleted
。
如何使用ease-out
曲线实现此功能?
答案 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。