我的故事板上有5个标签,带有5个数字(1-5)。我有一个随机数发生器。现在,生成的数字应将背景变成灰色,将文本变成白色。 我的标签定义如下:
@IBOutlet weak var num1: UILabel!
@IBOutlet weak var num2: UILabel!
@IBOutlet weak var num3: UILabel!
@IBOutlet weak var num4: UILabel!
@IBOutlet weak var num5: UILabel!
例如,现在随机数生成器给出数字1,我想选择标签1。 这样我就可以像这样制作所需的字符串:
let labelName = "num" + Str(randomlyGeneratedNumber)
但是正如您所看到的,它是一个字符串,我无法将其设为UILabel来访问文本和其他属性。
我检查了StackOverflow中的文档和各种文章,但是所有解决方案都将使用UILabel进行操作,而不是像我想要的方式那样访问UILabel。
任何帮助将不胜感激。 谢谢。
答案 0 :(得分:0)
变量名是在编译时求值的,您不能在运行时编写动态变量名
将标签声明为插座集合
@IBOutlet var labels: [UILabel]!
并按所需顺序在Interface Builder中连接标签
现在您可以按索引获取标签,请考虑Swift中的索引从零开始。
let label = labels[randomlyGeneratedNumber - 1]
答案 1 :(得分:0)
将标签设置为UILabel。
num1.tag = 1
num2.tag = 2
num3.tag = 3
num4.tag = 4
num5.tag = 5
您还可以在创建标签时在.xib文件中设置标签。
然后,您可以根据生成的随机数获取标签。
let label = self.view.viewWithTag(randomlyGeneratedNumber) as! UILabel