繁体   English   中英

Swift:插座名称的字符串串联

[英]Swift: String Concatenation for Outlet names

我希望减少代码中的行数,我有很多与其名称相对应的标签名称。 我想知道是否有办法在for-in循环或类似的方式中设置这些值。 现在,我正在努力寻找一种将标签名称串联起来以使其动态化的方法。 我不确定是否可以在Swift中执行此操作,有什么想法吗? 谢谢。

这段代码

LabelGiraffe1.text = "This is Giraffe 1"
LabelGiraffe2.text = "This is Giraffe 2"
LabelGiraffe3.text = "This is Giraffe 3"
LabelGiraffe4.text = "This is Giraffe 4"
LabelGiraffe5.text = "This is Giraffe 5"

对于更清洁的东西...

for number in 1...5 {
  LabelGiraffe + /(number).text = "This is Giraffe /(number)"
}

制作一系列标签并覆盖它们:

let giraffeLabels = [LabelGiraffe1, LabelGiraffe2, LabelGiraffe3, LabelGiraffe4, LabelGiraffe5] 

for (index, label) in enumerate(giraffeLabels) {
  label.text = "This is Giraffe \(index + 1)"
}

您还可以将giraffeLabels为视图控制器的存储或计算属性。

使用IBOutletCollection 这实际上就像将您所有的网点都放在一个数组中一样(我相信这是在后台进行的操作)。 然后,您可以尝试遍历它们,或按索引访问它们。

此处提供更多信息: http : //nshipster.com/ibaction-iboutlet-iboutletcollection/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM