在Swift中逐渐改变背景颜色

时间:2015-08-29 14:40:09

标签: ios swift sprite-kit

我正在制作一款游戏,我需要让背景颜色慢慢变化。当用户播放关卡时,背景颜色应该会改变以显示进度。

我原本想把起始颜色变成浅蓝色,然后变成绿色,然后变成黄色,然后变成橙色或类似的东西。

有什么想法吗?

2 个答案:

答案 0 :(得分:9)

这是一个工作示例,只需更改颜色:

var backgroundColours = [UIColor()]
var backgroundLoop = 0

override func viewDidLoad() {
    super.viewDidLoad()
    backgroundColours = [UIColor.redColor(), UIColor.blueColor(), UIColor.yellowColor()]
    backgroundLoop = 0
    self.animateBackgroundColour()
}

func animateBackgroundColour () {
    if backgroundLoop < backgroundColours.count - 1 {
        backgroundLoop++
    } else {
        backgroundLoop = 0
    }
        UIView.animateWithDuration(1, delay: 0, options: UIViewAnimationOptions.AllowUserInteraction, animations: { () -> Void in
            self.view.backgroundColor =  self.backgroundColours[self.backgroundLoop];
        }) {(Bool) -> Void in
            self.animateBackgroundColour();
        }
}

这将循环遍历颜色,因此您可以更改循环机制,并且该方法将不断调用自身,直到您发出删除所有动画的命令。

答案 1 :(得分:1)

第一

创建一个视图(或框),将其设置为填充屏幕;我们称之为背景
将其颜色设置为#e0f1f8(浅蓝色)

下一步:此代码应该启动一个 -

      UIView.animateWithDuration(0.5, animations: { () -> Void in
        background.Color = UIColor(red: 238/255.0, green: 238/255.0, blue: 80/255.0, alpha: 1.0)
      })

      UIView.animateWithDuration(0.5, animations: { () -> Void in
        background.Color = UIColor.redColor
      })

希望这会有所帮助。祝你好运!

归功于:

Source for my Answer