我想在我的UI标签前添加一个随机数,这是我的代码无效。
Template.foo
如果还有其他方法可以在UI标签前添加随机数,我们欢迎您的回答。
答案 0 :(得分:2)
使用IBOutletCollection
@IBOutlet var label: [UILabel]!
label[0].text! = "1"
label[1].text! = "2"
var random:Int = Int(arc4random_uniform(2))
if label[random].text! == "1" {
print("This is Label 1")
} else {
print ("This is Label 2")
}
更新:
答案 1 :(得分:1)
您可以将标签放入数组中,然后随机选择一个:
@IBOutlet var label1: UILabel!
@IBOutlet var label2: UILabel!
var labels = [UILabel]()
override func viewDidLoad() {
super.viewDidLoad()
labels.append(label1)
labels.append(label2)
var random = Int(arc4random_uniform(2))
if labels[random].text! == "1" {
print("This is Label 1")
} else {
print ("This is Label 2")
}
}
答案 2 :(得分:0)
您使用Label(random)
尝试实现的目标似乎是动态更改标签变量名称。正如other question所指出的,这可能是一种不好的做法。所以,我建议你先阅读Create a variable in swift with dynamic name。
[编辑:] 只是提供示例,您可以使用数组执行此操作,例如:
// Creating two UILabels:
var label1 = UILabel()
var label2 = UILabel()
label1.text = "0"
label2.text = "1"
// An array of Labels, which starts from 0:
let labels: [UILabel] = [label1, label2]
// Another random function which goes to the size of the array:
var i = random() % labels.count
// Just to check the random number:
print("Your random number: \(i)")
// And then, the test:
if labels[i].text == "0" {
print("This is Label 0: \(labels[i].text)")
} else {
print ("This is Label 1: \(labels[i].text)")
}
只需将这些想法应用于 IBOutlet 变量。
希望它有所帮助:D