iOS核心动画警灯闪烁灯光效果

时间:2012-01-08 22:12:09

标签: iphone objective-c ios core-animation quartz-graphics

编辑: 根据提供的评论,我已将我的问题指定为更直接的实施和所需的解决方案。

你好,

我想要一个蓝光,一个红灯可能是一个中性色光,所有这些都看起来像是在旋转(类似)如果附近有警车,你会看到灯光闪烁/旋转颜色。)

以下是我正在尝试制作效果的红色和蓝色图像视图的屏幕截图。

example screenshot of red and blue images 以下代码目前会改变每个视图图层的不透明度:

[UIView animateWithDuration:4.5
                      delay: 1.0
                    options: UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionCurveLinear
                 animations:^{
                     [self startRedAnimation];
                     [self startBlueAnimation];
                 }
                 completion:^(BOOL finished){}];

我的动画方法如下所示:

- (void)startRedAnimation
{
    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"opacity"];
    [animation setFromValue:[NSNumber numberWithFloat:0.75]];
    [animation setToValue:[NSNumber numberWithFloat:0.1]];
    [animation setDuration:0.5f];
    [animation setTimingFunction:[CAMediaTimingFunction
                                  functionWithName:kCAMediaTimingFunctionLinear]];
    [animation setAutoreverses:YES];
    [animation setRepeatCount:16];

    [[_redLightView layer] addAnimation:animation forKey:@"opacity"];
}

你可以想象blueLightView动画方法看起来很相似。

我正在寻找的是让视图看起来旋转,IE不仅仅是将它们的不透明度从0闪烁到1,而是改变颜色和/或在视图中旋转一圈。

我想使用QuartzCoreCoreAnimation框架来实现这一目标,而不只是UIView动画对图像数组的影响。

我对CoreAnimation相对较新,并且已经执行了类似旋转/脉冲视图层的效果,但我只是不确定我可以从框架中使用什么来获得我正在寻找的效果。

非常感谢任何见解!谢谢Stack Overflow同行!

1 个答案:

答案 0 :(得分:0)

尝试移动图像而不是更改颜色。我可以想象你可以通过来回旋转屏幕底部的图像来达到预期的效果。Illustration of the rotating light