簡體   English   中英

Swift-通過switch語句對CAGradientLayer進行動畫處理

[英]Swift - Animating CAGradientLayer via switch statement

我有一個通過CAGradientLayer生成的漸變背景。 我還具有一個switch語句,該語句根據UI的其他部分來更新gradientLayer的顏色。 它可以完美運行,但是,漸變之間的“淡入”非常快。 我什至沒有在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的時間內褪色? 謝謝。

您是否嘗試過這樣做?

CATransaction.setAnimationDuration(0.5)

您應該能夠將其放在switch語句的上方。

查看此答案以獲取更多見解更改CALayer屬性的動畫時間

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM