所以,我在一个viewcontroller上有20个UI按钮。我还有另外两个按钮,它们将改变这些按钮的不同组的当前标题或背景颜色。 (例如,按下其中一个按钮将改变其他10个按钮的颜色,而按下另一个按钮将改变其中15个按钮的背景。)
我注定要创建20个不同的IBOutlet,如:
@IBOutlet weak var button1:UIButton!
@IBOutlet weak var button2:UIButton!
@IBOutlet weak var button3:UIButton!
然后不得不再写25行:
button1!.setTitleColor(UIColor.redColor(),forState:.Normal()
button2!.setTitleColor(UIColor.redColor(),forState:.Normal()
button3!.setTitleColor(UIColor.redColor(),forState:.Normal()
当然有一种更简单的方法吗?我无法通过IBOutlet链接多个UI,更改按钮的标签也不会做太多事情,因为无论如何我仍然需要写下25次这样的事情。
是否可以将这些按钮分组,我可以编写一行代码来更改该组中的所有内容?
答案 0 :(得分:3)
将按钮标签设置为101到125之间的串行按钮,然后单击任何按钮执行此操作
for(UIButton *button in <parent view of buttons>.subviews){
if(button.tag >= 101 && button.tag <= 125){
button.setTitleColor(UIColor.redColor(), forState: .Normal()
}
}
对于Swift
for subview in self.createBugView.subviews {
if let button = subview as? UIButton {
// this is a button
if(button.tag >= 101 && button.tag <= 125){
button.setTitleColor(UIColor.red, for: .normal)
}
}
}