我想使用for循环来更改5个按钮的标题。我想用i作为变量来代替数字。
for (var i = 1; i < 6; ++i) {
let buttonName = button0 + i
buttonName.setTitle("Sydvestpynten", forState: UIControlState.Normal)
}
我的按钮名为button01,button02等。
上述代码不起作用。我做错了什么?
答案 0 :(得分:4)
您不能像想要的那样动态创建变量名称。像这样的东西只能用一些(脚本)语言工作,甚至被认为是一种不好的做法。
但是有一个简单的解决方法:使用数组。将按钮存储在数组中而不是创建大量变量或动态构建数组:
for button in [button01, button02, button03, button04, button05, button05] {
button.setTitle("Sydvestpynten", forState: UIControlState.Normal)
}
如果您正在使用Interface Builder,请记住您也可以在Swift中使用IBOutletCollections。但语法略有不同:
@IBOutlet var buttons: Array<UIButton>
在Interface Builder中,您可以将多个按钮分配到同一个插座(buttons
)。
答案 1 :(得分:2)
let buttons = [button01, button02, button03...]
for button in buttons {
button.setTitle("Sydvestpynten", forState: .Normal)
}
将数组作为属性可能是个好主意。
答案 2 :(得分:0)
尝试将按钮存储在数组中,然后循环遍历数组并设置标题。
var arrayOfButtons:[UIButton] = []
//add buttons here using arrayOfButtons.append(myButton)
for button in arrayOfButtons
{
button.setTitle("title", forState: UIControlState.Normal)
}