我似乎在将同一数组的多个对象添加到子视图时遇到问题。我尝试同时制作一个UIViews和UILabels数组,并得到相同的结果

我使用以下代码制作了一个UILabel数组(我为调用的标签提供了单独的func):

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])


问题是,数组中的第一个对象出现了,而其余的没有。是否有原因,或者我在代码中做错了什么?我不必使用数组来明显地完成此工作,但我只是对引起问题的原因感到好奇。

最佳答案

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

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

关于ios - 添加到 subview 的数组对象不出现(Swift 3),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44731865/

10-11 01:33
查看更多