在Swift中逐渐更改背景颜色

62lalag4  于 2022-12-10  发布在  Swift
关注(0)|答案(3)|浏览(267)

我正在做一个游戏,我需要背景颜色慢慢改变。当用户玩这个关卡时,背景颜色应该改变以显示进度。
我在考虑让开始的颜色是浅蓝色,然后随着时间的推移变成绿色,然后是黄色,然后是橙子或者类似的颜色。
有什么想法吗?

gmxoilav

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();
        }
}

这将在颜色之间无休止地循环,因此您更改了循环机制,该方法将不断地调用自身,直到您发出删除所有动画的命令。

gev0vcfq

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

gj3fmq9x

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();
                }
        }

相关问题