For loop 用于循环以在Swift中更改按钮标题
我想使用for循环来更改5个按钮的标题。我想用I作为变量来替换数字For loop 用于循环以在Swift中更改按钮标题,for-loop,swift,For Loop,Swift,我想使用for循环来更改5个按钮的标题。我想用I作为变量来替换数字 for (var i = 1; i < 6; ++i) { let buttonName = button0 + i buttonName.setTitle("Sydvestpynten", forState: UIControlState.Normal) } (变量i=1;i
for (var i = 1; i < 6; ++i) {
let buttonName = button0 + i
buttonName.setTitle("Sydvestpynten", forState: UIControlState.Normal)
}
(变量i=1;i<6;++i){
让buttonName=button0+i
buttonName.setTitle(“SydVestPyten”,用于状态:uicontrol状态.Normal)
}
我的按钮称为button01、button02等
上面的代码不起作用。我做错了什么?尝试将按钮存储在数组中,然后在数组中循环并设置标题
var arrayOfButtons:[UIButton] = []
//add buttons here using arrayOfButtons.append(myButton)
for button in arrayOfButtons
{
button.setTitle("title", forState: UIControlState.Normal)
}
将数组设为属性可能是个好主意。您不能像正在尝试的那样动态创建变量名。像这样的事情只在少数(脚本)语言中起作用,即使这样也被认为是一种不好的做法 但是有一个简单的解决方法:使用数组。将按钮存储在数组中,而不是创建大量变量,或者动态构造数组:
for button in [button01, button02, button03, button04, button05, button05] {
button.setTitle("Sydvestpynten", forState: UIControlState.Normal)
}
如果您使用的是Interface Builder,请记住您也可以将iBootletCollections与Swift一起使用。不过,语法有点不同:
@IBOutlet var buttons: Array<UIButton>
@IBOutlet var按钮:数组
在Interface Builder中,您可以将几个按钮分配给同一个插座(
按钮
)。我不认为您可以在运行时构造这样的变量名。请检查我的答案以获得解决方案虽然Rajeev的答案与您的要求相符,但我怀疑您最好使用iBootletCollection
,它允许您将一组按钮放入一个插座中,请参阅此处以获取更多信息谢谢您的帮助。我一直想亲自去看看谢谢你的解决方案谢谢你的帮助!
@IBOutlet var buttons: Array<UIButton>