我正在制作一款游戏,我需要让背景颜色慢慢变化。当用户播放关卡时,背景颜色应该会改变以显示进度。
我原本想把起始颜色变成浅蓝色,然后变成绿色,然后变成黄色,然后变成橙色或类似的东西。
有什么想法吗?
答案 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
})
希望这会有所帮助。祝你好运!
归功于: