在UI标签前添加随机数

时间:2015-10-20 02:51:46

标签: ios swift

我想在我的UI标签前添加一个随机数,这是我的代码无效。

Template.foo

如果还有其他方法可以在UI标签前添加随机数,我们欢迎您的回答。

3 个答案:

答案 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. 确保数组中所需的所有标签都突出显示
  2. 右键单击并拖动到您的收藏视图
  3. 设置与Outlet Collection的连接
  4. enter image description here

答案 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