加速模糊?

时间:2009-02-19 18:50:30

标签: iphone core-animation

有没有办法使用类似模糊的东西来加速动画?

我有一个循环,必须通过它来表示我的UI中的一个“增量”。当用户一次向前跳过几个增量时,我想加快每个动画循环的速度。

我该如何做到这一点?

3 个答案:

答案 0 :(得分:2)

iPhone SDK没有CoreImage过滤器(在Mac OS X中使用它的正确方法)。

您的其他选择是

  • 使用Core Animation图层伪造它。
  • 使用OpenGL

这并非易事,但在CoreAnimation的情况下,您可以尝试使用各种Alpha值和/或彩色阴影设置图层的几个副本。半透明掩模层也可以起作用。根据内容和速度的不同,您可能需要四处寻找才能获得所需的效果。

答案 1 :(得分:1)

如果您只想坚持使用Quartz,您还可以考虑计算要移动的增量数,并执行一个封装它们的动画。

然后,将单个动画的持续时间设置为小于x,如果“堆叠”结束,则为单个动画。

虽然这不会给你一个模糊,但如果单独进行,你可以简单地将整体的持续时间调整为小于各个部分的总和。在这么小的规模下,这种技巧往往会让用户感觉相同。

答案 2 :(得分:1)

你可以通过创建一个图层,将其alpha设置为.25(或你认为看起来不错的任何值)来获得“涂抹条纹”效果,然后将图像复制到3-5个位置(选择一个看起来不错的值)对你来说)间隔开使它看起来像运动模糊。

对于超额想象,有3个CGLayers,分别是.25,.5,.75,加上原始图像,并且让CGLayers落后3步,2步和1步,留下一条“踪迹”。