我有一个通过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个持续时间?感谢。
答案 0 :(得分:1)
你试过这个吗?
CATransaction.setAnimationDuration(0.5)
您应该可以将它放在switch语句的上方。
请查看此答案以获取更多见解Change animation time for properties of a CALayer