使用Core Animation的生涩动画

时间:2010-04-14 12:35:13

标签: iphone animation core-animation

在我的iPhone应用程序中,我试图获得一些滚动屏幕的红白条纹,以便在条纹速度变高时平滑动画。在我的应用程序中,用户启动动画并通过手指滑动更改滚动速度,并通过两指捏改变条纹的宽度。动画停止以响应双击。如果速度变高或条纹变窄,则动画不再平滑。条纹的边缘似乎跳了起来。

动画很简单。我在一个比屏幕稍大的层中绘制条纹。然后我设置了一个动画,它将图层位置精确地移动一条红色条纹到下一条红色条纹的距离。持续时间由手指滑动的速度设置,重复计数为1.当动画停止时,委托检查标志以查看用户是否要停止滚动。如果不是,则动画再次重新启动一个周期。是否有更好的方法可以使动画在高速或窄条纹下平滑?

谢谢 -

1 个答案:

答案 0 :(得分:1)

手动猜测:由于每个动画都覆盖了一对条纹的距离,当你减小条纹的宽度时,每秒动画的数量会增加,因此设置新动画所花费的时间比例和随着宽度的减小,重置图层会上升。

然后修复是在条纹变窄时增加每个动画所覆盖的距离。因此,不是动画从一个红色条纹到下一个红色条纹,而是动画到第n个。如果随着条带变小而增加n,您将能够保持每秒的动画大致稳定。

就每秒动画而言,增加速度与缩小条带相同。所以修复是一样的:随着速度的提高,增加n。