如何在不造成无限内存问题的情况下实现这一目标?我正在尝试这样的事情:
override func viewDidAppear(animated: Bool) {
view.backgroundColor = UIColor.whiteColor()
fadeBackground()
}
let colors = [UIColor.blueColor(), UIColor.redColor(), UIColor.greenColor(), UIColor.orangeColor(), UIColor.purpleColor()]
func fadeBackground(){
UIView.animateWithDuration(4, delay: 0, options: UIViewAnimationOptions.CurveLinear, animations: {
var randomIndex = Int(arc4random_uniform(UInt32(self.colors.count)))
self.view.backgroundColor = self.colors[randomIndex]
}) { (stuff Bool) -> Void in
self.fadeBackground()
}
}
我担心这会最终吞噬记忆。如果没有递归,我怎么能这样做?我需要[unowned self]
吗?
答案 0 :(得分:2)
我相信这是正确的代码。尝试将view.backgroundColor
设置为UIColor.whiteColor()
等初始颜色,然后重试。然后你可以用arc4random()
或其他东西随机选择另一种颜色并调用相同的方法。