【发布时间】:2016-06-01 23:25:27
【问题描述】:
每次我打开应用程序时,我下面的代码都会从我的颜色数组中给我一个随机的背景颜色,但不会每秒都改变颜色。我在这里做错了什么?
import UIKit
class ViewController: UIViewController {
var timer = NSTimer()
func randomColorGenerator() -> Int{
let randomColor = Int(arc4random_uniform(4))
return randomColor
}
override func viewDidLoad() {
super.viewDidLoad()
let colors = [
UIColor(red: 233/255, green: 203/255, blue: 198/255, alpha: 1),
UIColor(red: 38/255, green: 188/255, blue: 192/255, alpha: 1),
UIColor(red: 253/255, green: 221/255, blue: 164/255, alpha: 1),
UIColor(red: 235/255, green: 154/255, blue: 171/255, alpha: 1),
UIColor(red: 87/255, green: 141/255, blue: 155/255, alpha: 1)
]
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("randomColorGenerator"), userInfo: nil, repeats: true)
let randColor = ViewController().randomColorGenerator()
self.view.backgroundColor = colors[randColor]
}
【问题讨论】:
-
randomColorGenerator 方法是否也将颜色应用于屏幕?
-
randomColorGenerator 返回一个随机数,然后将 randColor 设置为随机数,然后在“self.view.backgroundColor = colors[randColor]”中使用。我应该在 randomColorGenerator 方法中包含更改背景颜色语句吗?
-
我从你的代码中可以看出,你的计时器只是调用
randomColorGenerator,它返回一个Int,然后什么都没有发生。 -
关于你如何设置你的函数只能随机生成的代码,因为它的范围在 viewDidLoad 结束时结束
-
@D.Khan 这就是问题所在,你只是在生成一个随机数,而不是使用计时器设置屏幕。
标签: ios arrays swift random nstimer