如何在iOS上动画渐变动​​画

Sup*_*d86 5 iphone core-animation core-graphics ios

我想模仿"旺旺"的iPhone应用程序背景,有3种颜色,我希望视图循环,让我们说红色,蓝色和绿色.

我希望有一个红色到蓝色到绿色的渐变,每个屏幕的1/3,相互褪色(渐变),然后,我希望红色从屏幕顶部移开并返回到底部.(见下面的照片......)

动画应该向上移动,我希望渐变上升并在屏幕底部进行改造并上升.

我尝试使用CAGradientLayer并设置"colors"属性的动画,但这看起来就像所有内容相互淡化,不一定会移出屏幕.

考虑使用OpenGL,但不希望那些看似非常简单的东西.任何帮助/代码示例将非常感谢.我基本上需要使用CoreAnimation/CoreGraphics来帮助设置渐变动画.

提前致谢!

在此输入图像描述

在此输入图像描述

在此输入图像描述

jrt*_*ton 6

colors正如您所发现的那样,动画化CAGradientLayer 的属性只会导致淡入淡出.但是我觉得渐变层是要走的路.您应该查看以下选项:

  • 动画positions属性以及/而不是colors.
  • 创建一个更大的渐变图层,其中包含完整的动画周期并为其位置设置动画

第二个选项可能会提供最佳性能,因为不需要重新计算渐变.