有没有办法使用循环来标记多个项目(swift3)

时间:2017-08-17 16:22:14

标签: ios swift loops for-loop

这是我试图缩短的代码。我认为它有一个循环,但我不确定。

piker1.tag = 1
    piker2.tag = 2
    piker3.tag = 3
    piker4.tag = 4
    piker5.tag = 5
    piker6.tag = 6
    piker7.tag = 7
    piker8.tag = 8
    piker9.tag = 9
    piker10.tag = 10
    piker11.tag = 11
    piker12.tag = 12
    piker13.tag = 13
    piker14.tag = 14

2 个答案:

答案 0 :(得分:1)

您无法动态生成变量名称,因为变量名称需要在编译时知道,因此您无法执行您要执行的操作。

如果将所有按钮放在一个数组中,则可以遍历数组并在循环中分配标记,但仍需要手动将按钮添加到数组中。

let pikers = [piker1, piker2,...piker14]
for i in 0..<pikers.count {
    pikers[i].tag = i
}

答案 1 :(得分:1)

最优雅的方式是为每个选择器设置一个IBOutlet Collection而不是一个简单的IBOutlet。 enter image description here

只需从第一个选择器拖放,就像使用简单的插座一样,但是将Connection更改为Outlet Collection。然后将其他拾取器拖放到同一个插座。你会得到一系列的采摘者。 然后迭代它们:

xts

Voala!