Вот рабочий пример, просто изменить цвета:
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();
}
}
Это будет цикл через цветов бесконечно, так что вы изменить до зацикливание mehanism, и метод будет постоянно вызывать себя до тех пор, пока вы не выпустите команду для удаления всех анимаций.
Это должно быть то, что вы ищете http://stackoverflow.com/questions/32211803/swift-background-color-fading-animation-spritekit/32215345#32215345 – 0x141E