animationUIView背景颜色迅速

我想用随机颜色为UIView的背景制作animation。 这是我迄今为止所做的:

import UIKit class ViewController: UIViewController { var timer = NSTimer() var colours = UIColor() override func viewDidLoad() { super.viewDidLoad() getRandomColor() timerF() UIView.animateWithDuration(2, delay: 0.0, options:[UIViewAnimationOptions.Repeat, UIViewAnimationOptions.Autoreverse], animations: { self.view.backgroundColor = self.colours }, completion:nil) } func timerF(){ timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("getRandomColor"), userInfo: nil, repeats: true) } func getRandomColor(){ let red = Float((arc4random() % 256)) / 255.0 let green = Float((arc4random() % 256)) / 255.0 let blue = Float((arc4random() % 256)) / 255.0 let alpha = Float(1.0) colours = UIColor(colorLiteralRed: red, green: green, blue: blue, alpha: alpha) } } 

但它只是在开始时产生一个随机的颜色,并在我的animation中使用这种单一的颜色。 我想find一种animation颜色的方法,所以UIVIEW的背景看起来像一个随机的彩虹。

只需把animation放在getRandomColor

 func getRandomColor() { let red = Float((arc4random() % 256)) / 255.0 let green = Float((arc4random() % 256)) / 255.0 let blue = Float((arc4random() % 256)) / 255.0 let alpha = Float(1.0) UIView.animate(withDuration: 1.0, delay: 0.0, options:[.repeat, .autoreverse], animations: { self.view.backgroundColor = UIColor(colorLiteralRed: red, green: green, blue: blue, alpha: alpha) }, completion:nil) }