Swift - 通过switch语句动画CAGradientLayer

时间:2016-04-07 19:47:57

标签: ios swift cabasicanimation cagradientlayer

我有一个通过CAGradientLayer生成的渐变背景。我还有一个switch语句,它根据UI的其他部分更新gradientLayer的颜色。然而,它完美地运行了" fade"渐变之间的速度非常快。我甚至没有在快速项目中指定这一点。它本身就在慢慢消失。

我希望淡入淡出的持续时间为0.5秒。

这是我的开关声明。

    switch newValue{
        case 1..<70:
        gradientLayer.colors = [gradientColor1a, gradientColor1b]
        case 70..<120:
        gradientLayer.colors = [gradientColor2a, gradientColor2b]
        case 120..<190:
        gradientLayer.colors = [gradientColor3a, gradientColor3b]
        case 190..<400:
        gradientLayer.colors = [gradientColor4a, gradientColor4b]
        default:
        gradientLayer.colors = [gradientColor1a, gradientColor1b]
    }

我正在阅读的文档说明你可以用toValue / fromValue设置动画,但是,我不知道如何在上面的switch语句中实现它。是否可以使用CABasicAnimation?

如何根据我的开关值使这些渐变渐渐消失0.5个持续时间?感谢。

1 个答案:

答案 0 :(得分:1)

你试过这个吗?

CATransaction.setAnimationDuration(0.5)

您应该可以将它放在switch语句的上方。

请查看此答案以获取更多见解Change animation time for properties of a CALayer