Ios 在Swift中逐渐改变背景色

Ios 在Swift中逐渐改变背景色,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我正在制作一个需要背景颜色慢慢改变的游戏。当用户播放关卡时,背景颜色应该改变以显示进度 我在考虑开始的颜色是浅蓝色,然后随着时间的推移变成绿色、黄色、橙色或类似的颜色 有什么想法吗?首先: 创建视图(或框)并将其设置为填充屏幕;我们称之为背景 将其颜色设置为#e0f1f8(浅蓝色) 下一步:这段代码应该有一个开始- UIView.animateWithDuration(0.5, animations: { () -> Void in background.Col

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

我在考虑开始的颜色是浅蓝色,然后随着时间的推移变成绿色、黄色、橙色或类似的颜色

有什么想法吗?

首先:

创建视图(或框)并将其设置为填充屏幕;我们称之为背景
将其颜色设置为#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
      })
希望这有帮助。祝你好运

归功于:


以下是一个工作示例,只需更改颜色即可:

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();
        }
}
var backgroundcolors=[UIColor()]
var backgroundLoop=0
重写func viewDidLoad(){
super.viewDidLoad()
backgroundcolors=[UIColor.redColor(),UIColor.blueColor(),UIColor.yellowColor()]
backgroundLoop=0
self.animateBackgroundColor()
}
func animateBackgroundColor(){
如果backgroundLoopVoid in
self.view.backgroundColor=self.backgroundcolors[self.backgroundLoop];
}){(Bool)->Void in
self.animateBackgroundColor();
}
}

这将无休止地循环颜色,因此您将更改循环mehanism,并且该方法将不断调用自身,直到您发出命令删除所有动画为止

您可以在任何地方使用此代码,但对于本例,我将其放在viewcontrollerI的viewDidLoad中。我不认为您可以使用十六进制指定颜色。通常是带有rgb属性的UIColor。哎呀:-/谢谢这里的指针。我同时做网络和IOS的工作,但最近它更加关注网络,所以我有点在错误的方向上人手不足。我将对此进行编辑。谢谢。这应该是你要找的