我似乎在向子视图添加同一数组的多个对象时遇到问题。我尝试制作UIViews和UILabels的数组并获得相同的结果
我使用以下代码创建了一个UILabel数组(我为我调用的标签设置了一个单独的函数):
var labelArray = [UILabel()]
labelArray.append(label(text: "testing", colour: UIColor.white, lines: 1))
labelArray.append(label(text: "1, 2, 3", colour: UIColor.white, lines: 1))
然后我将它添加到子视图并为其添加了约束(我使用扩展来缩短NSLayoutConstraints):
view.addSubview(labelArray[0])
view.addSubview(labelArray[1])
view.addConstrainsWithFormat(format: "H:|-20-[v0]-20-[v1]", views: labelArray[0], labelArray[1])
view.addConstrainsWithFormat(format: "V:|-20-[v0]", views: labelArray[0])
view.addConstrainsWithFormat(format: "V:|-20-[v0]", views: labelArray[1])
问题是,数组中的第一个对象出现但其余对象没有出现。这有什么原因,或者我的代码中有错误吗?我没有必要使用数组来明显地完成这项工作,但我只是对导致问题的原因感到好奇。
答案 0 :(得分:2)
尝试将var labelArray = [UILabel()]
更改为var labelArray = [UILabel]()
,它会正常工作。
您在此处插入了第一个标签var labelArray = [UILabel()]
,因此第二个标签不在数组的第1位,而在第2位,因为您的数组有3个标签。创建空数组的正确方法是var labelArray = [UILabel]()
。