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