【发布时间】:2018-05-30 11:42:00
【问题描述】:
我有 3 个标签,我想为每个标签生成随机数。我在函数中使用 GKRandomSource 类,没关系。问题是,如果我想拥有更多标签(即 30 个)并且所有标签都具有相同的操作,我需要将所有标签一一引用到 IBAction,我需要在 func 代码中一一声明所有标签......我'一直在寻找更短的方法,也许将它们全部放在 3 个堆栈中(每个堆栈 10 个标签)并触发,但我什么也没得到。我尝试了 outlet 集合(就像我们在 UIButtons 中使用的那样),但它不允许我更改标签文本。
如何将一个函数用于不重复的多个标签?
示例;
let allNumbers = [Int](1...99)
var shuffledNum = [Int]()
@IBOutlet weak var labelOne: UILabel!
@IBOutlet weak var labelTwo: UILabel!
@IBOutlet weak var labelThree: UILabel!
func generateNumbers() {
shuffledNum = GKRandomSource.sharedRandom().arrayByShufflingObjects(in: allNumbers) as! [Int]
let threeNumbers = shuffledNum.prefix(3).sorted()
labelOne.text = String(threeNumbers[0])
labelTwo.text = String(threeNumbers[1])
labelThree.text = String(threeNumbers[2])
}
【问题讨论】: