for循环更改Swift中的按钮标题

时间:2014-10-29 11:44:03

标签: for-loop swift

我想使用for循环来更改5个按钮的标题。我想用i作为变量来代替数字。

for (var i = 1; i < 6; ++i) {     

let buttonName = button0 + i                  
buttonName.setTitle("Sydvestpynten", forState: UIControlState.Normal)

}

我的按钮名为button01,button02等。

上述代码不起作用。我做错了什么?

3 个答案:

答案 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)
}