每次调用时使用 func 替代任务 a 或 b

use func to alternative either task a or b every time it is called

这是在 swift 代码中。我想将当前为红色的按钮的背景颜色更改为蓝色。但是它再次敲击我希望它从蓝色变为红色。我通常会怎么做。

var counter = 0
var button = UIButton()

func switch(){
if counter % 2 == 0 {
  button.backgroundcolor = .blue
  }
    else {
    button.backgroundcolor = .red }
   counter += 1}

我写这个问题是因为虽然我所做的是有效的。我认为必须有一种更有效的方法来编写代码,而不是声明一个 var 并对其进行潜水。

因为只有两个状态声明 counter 为 Bool

var backgroundColorIsBlue = false

switch 函数中——由于 switch 是一个保留字,所以无法编译——只需切换(反转)Bool 并设置背景颜色。如果 backgroundColorIsBluetrue,则三元运算符使用 ? 之后的值,否则使用 :.

之后的值
@objc func switchAction(_ sender : UIButton) {
    backgroundColorIsBlue.toggle()
    sender.backgroundColor = backgroundColorIsBlue ? .blue : .red
}