我们可以使用 swift 为 2 个动作制作 1 个 UIButton 吗?

Can we make 1 UIButton for 2 action with swift?

我想为这样的按钮执行 2 个操作。 为 1 个按钮选择和取消选择操作。

   @IBAction func btntouch(sender: UIButton) {

         if firsttouch
        {
         print bla bla
         change button to selected style. maybe background color. 
         }
      else
        {

        }
}

我该怎么做?

创建 2 IBActions:

@IBAction func touchDown(_ sender: AnyObject) {
    print("down")
}

@IBAction func touchUp(_ sender: AnyObject) {
    print("up")
}

连接第一个时,确保 event 设置为 touchDown。对于第二个,确保将其设置为 touchUpInside

如果您需要拆分两个按钮状态 - 例如开和关,试试这个:

var buttonSwitched : Bool = false

@IBAction func btntouch(sender: UIButton) {

    //this line toggle your button status variable
    //if true, it goes to false, and vice versa
    self.buttonSwitched = !self.buttonSwitched

    if self.buttonSwitched
    {
        //your UI styling
    }
    else
    {
        //your opposite UI styling
    }
}

是的,你可以。根据您的要求,您可以将按钮的当前状态存储在视图控制器或模型中。

如果第一次触摸引起的视觉变化需要在视图控制器的打开和关闭过程中持续存在,请将指示变化的值存储在模型中;如果您需要在视图控制器显示时重置视觉效果,请将值存储在视图控制器本身中:

var firstTouch = true
@IBAction func btntouch(sender: UIButton) {
     if firstTouch  {
         firstTouch = false
         ...
     } else {
         ...
     }
}