添加到子视图的数组对象没有出现(swift 3)

时间:2017-06-24 01:23:08

标签: ios arrays uiview

我似乎在向子视图添加同一数组的多个对象时遇到问题。我尝试制作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])

问题是,数组中的第一个对象出现但其余对象没有出现。这有什么原因,或者我的代码中有错误吗?我没有必要使用数组来明显地完成这项工作,但我只是对导致问题的原因感到好奇。

1 个答案:

答案 0 :(得分:2)

尝试将var labelArray = [UILabel()]更改为var labelArray = [UILabel](),它会正常工作。

您在此处插入了第一个标签var labelArray = [UILabel()],因此第二个标签不在数组的第1位,而在第2位,因为您的数组有3个标签。创建空数组的正确方法是var labelArray = [UILabel]()