【问题标题】:Swift - Animating CAGradientLayer via switch statementSwift - 通过 switch 语句为 CAGradientLayer 设置动画
【发布时间】:2016-04-07 19:47:57
【问题描述】:

我有一个通过 CAGradientLayer 生成的渐变背景。我还有一个 switch 语句,它根据 UI 的其他部分更新渐变层的颜色。它完美地工作,但是,渐变之间的“淡入淡出”非常非常快。我什至没有在 swift 项目中指定这一点。它只是自然地慢慢褪色。

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

这是我的 switch 语句。

    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 持续时间?谢谢。

【问题讨论】:

  • 你知道如何在switch语句之外设置动画吗?

标签: ios swift cabasicanimation cagradientlayer


【解决方案1】:

你试过这样做吗?

CATransaction.setAnimationDuration(0.5)

你应该可以把它放在你的 switch 语句之上。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    相关资源
    最近更新 更多