我正在做一个游戏,我需要背景颜色慢慢改变。当用户玩这个关卡时,背景颜色应该改变以显示进度。我在考虑让开始的颜色是浅蓝色,然后随着时间的推移变成绿色,然后是黄色,然后是橙子或者类似的颜色。有什么想法吗?
gmxoilav1#
下面是一个工作示例,只需更改颜色:
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(); } }
这将在颜色之间无休止地循环,因此您更改了循环机制,该方法将不断地调用自身,直到您发出删除所有动画的命令。
gev0vcfq2#
第一步:创建一个视图(或一个框)将其设置为填充屏幕;让我们称之为背景将其颜色设置为#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
gj3fmq9x3#
在Swift中逐渐改变背景颜色:简单使用
override func viewDidLoad() { self.animateBackgroundColour() } func animateBackgroundColour () { UIView.animate(withDuration: 10, delay: 0, options: UIView.AnimationOptions.allowUserInteraction, animations: { () -> Void in self.YOURVIEW.backgroundColor = UIColor.random() }) {(Bool) -> Void in self.animateBackgroundColour(); } }
3条答案
按热度按时间gmxoilav1#
下面是一个工作示例,只需更改颜色:
这将在颜色之间无休止地循环,因此您更改了循环机制,该方法将不断地调用自身,直到您发出删除所有动画的命令。
gev0vcfq2#
第一步:
创建一个视图(或一个框)将其设置为填充屏幕;让我们称之为背景
将其颜色设置为#e0f1f8(浅蓝色)
下一个:这个代码应该得到一个开始-
希望这对你有帮助,祝你好运!
功劳归于:
Source for my Answer
gj3fmq9x3#
在Swift中逐渐改变背景颜色:简单使用