让我说我在永远改变的背景中有价值。我想让它改变背景颜色,褪色很好。
这就是我目前正在做的事情: 我有一个Timer,它每秒读取一次值,然后选择新颜色并通过CAAnimation淡化它,如下所示:
CABasicAnimation* fade = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
fade.fromValue = (id)self.view.backgroundColor.CGColor;
[self.view setBackgroundColor:changeColor];
fade.toValue = (id)changeColor.CGColor;
[fade setDuration:0.5];
[self.view.layer addAnimation:fade forKey:@"fadeAnimation"];
这实际上可行,因为动画比实际的计时器短,所以它看起来不错但有点草率。
如果没有计时器,我该如何永久平稳地完成这项工作?
答案 0 :(得分:0)
我建议使用UIView动画。您可以使用animateKeyframesWithDuration:delay:options:animations:completion:等方法来设置单个颜色过渡的动画,并在完成块中触发下一个颜色更改。为了避免在完成方法中深层嵌套动画块,我有时会有一个方法使用实例变量来跟踪步进计数器,而完成块只是递增步进计数器并再次调用该方法。
如果您可以将应用限制为iOS 7,则可以使用新的关键帧动画来设置一系列颜色的动画。
ShinobiControls有一个演示项目可以完全满足您的需求。检查此链接: