动画中的小延迟/暂停

时间:2011-04-09 15:09:22

标签: iphone objective-c animation nstimer

大家好,任何人都可以帮我解决这个问题......

我有一个项目,我有NSTimer每秒大约20次开火,因此只使用一个图像(以编程方式加载)在iPhone屏幕上生成相同的图像大约二十次,这些图像从顶部开始屏幕到底部,它们被移除(或多或少模拟雨水或雨滴)。

我的问题是看动画,我注意到有很小的延迟,看起来像一个休息,暂停或小振动。因此流动不顺畅。

请有人帮我解决这个问题。

提前致谢

4 个答案:

答案 0 :(得分:1)

您可以查看CADisplayLink类。

答案 1 :(得分:0)

计时器并非设计用于动画。

最好的办法是让一个线程在一个无限循环中运行,在那里检查是否需要再次设置动画,或者只是总是动画(给你更高的帧速率),但是使用经过的时间作为您正在绘制的州的参考。

答案 2 :(得分:0)

你真的不应该使用计时器。相反,您应该使用内置的UIView动画方法:

animateWithDuration:animations:
animateWithDuration:animations:completion:
animateWithDuration:delay:options:animations:completion:

答案 3 :(得分:0)

仅仅因为你要求UI运行循环中的计时器以一定的速率关闭,并不意味着你将以恰好的速率或以均匀的间隔调用。您应该检查每个计时器回调中的时间和经过时间“dt”,并相应地更改动画位置y + dy * dt等。