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的工作,但最近它更加关注网络,所以我有点在错误的方向上人手不足。我将对此进行编辑。谢谢。这应该是你要找的