Swift。使用 IBOutlet 更改多个 UIButton
Swift. Changing multiple UIButtons with IBOutlet
所以,我在一个 viewcontroller 上有 20 个 UI 按钮。我还有 2 个其他按钮,它们将更改这些按钮的不同组的 currentTitle 或背景颜色。 (例如,按下这 2 个按钮中的一个会改变其他 10 个按钮的颜色,而按下另一个按钮会改变其中 15 个按钮的背景。)
我注定要创建 20 个不同的 IBOutlets,例如:
@IBOutlet 弱变种按钮 1:UI按钮!
@IBOutlet 弱变量按钮 2:UI按钮!
@IBOutlet 弱变量 button3: UIButton!
.
.
.
然后必须再写 25 行:
button1!.setTitleColor(UIColor.redColor(), forState: .Normal()
button2!.setTitleColor(UIColor.redColor(), forState: .Normal()
button3!.setTitleColor(UIColor.redColor(), forState: .Normal()
确定有更简单的方法吗?我不能 link 使用 IBOutlet 超过一个 UI,并且更改按钮的标签也无济于事,因为无论如何我仍然必须把该死的东西写下来 25 次。
是否可以将这些按钮放入组中,这样我就可以编写一行代码来更改该组中的所有内容?
将您的按钮标签设置为 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)
}
}
}
所以,我在一个 viewcontroller 上有 20 个 UI 按钮。我还有 2 个其他按钮,它们将更改这些按钮的不同组的 currentTitle 或背景颜色。 (例如,按下这 2 个按钮中的一个会改变其他 10 个按钮的颜色,而按下另一个按钮会改变其中 15 个按钮的背景。)
我注定要创建 20 个不同的 IBOutlets,例如:
@IBOutlet 弱变种按钮 1:UI按钮!
@IBOutlet 弱变量按钮 2:UI按钮!
@IBOutlet 弱变量 button3: UIButton!
.
.
.
然后必须再写 25 行:
button1!.setTitleColor(UIColor.redColor(), forState: .Normal()
button2!.setTitleColor(UIColor.redColor(), forState: .Normal()
button3!.setTitleColor(UIColor.redColor(), forState: .Normal()
确定有更简单的方法吗?我不能 link 使用 IBOutlet 超过一个 UI,并且更改按钮的标签也无济于事,因为无论如何我仍然必须把该死的东西写下来 25 次。
是否可以将这些按钮放入组中,这样我就可以编写一行代码来更改该组中的所有内容?
将您的按钮标签设置为 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)
}
}
}