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