我对Swift很陌生,并且正在进行我的第一个项目(我对Javascript和web开发有一些经验)。我遇到了麻烦(花了4个小时尝试不同的解决方案)。
我有一个应用程序,当按下UIButton时,它会将一个值记录到FireBase(ON)。当第二次推送它时,它会登录(关闭)到数据库。
当我让按钮改变view.backgroundColor时,将if-else与它的颜色绑定。
但我一生都不知道如何根据按钮的状态构建if-else。我现在试图改变按钮本身的颜色,并将if-else与之绑定。我知道这是一个非常混乱的不恰当的方式去做这件事。

import UIKit
import Firebase
import FirebaseDatabase

class ViewController: UIViewController {
    @IBAction func OnOffButton(_ sender: UITapGestureRecognizer){
        if button.backgroundColor == UIColor.white {
        OnOff(state:"ON")
            OnOffButton.backgroundColor = UIColor.blue
        } else{
            OnOff(state:"OFF")
            OnOffButton.backgroundColor = UIColor.white
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        OnOff(state: "Off")
        OnOffButton.backgroundColor = UIColor.white
    }

最佳答案

下面是Duncan C建议使用buttonIsSelected变量来存储按钮状态的快速而肮脏的实现:

import UIKit

class ViewController: UIViewController {

  var buttonIsSelected = false
  @IBOutlet weak var onOffButton: UIButton!

  override func viewDidLoad() {
    super.viewDidLoad()
    updateOnOffButton()
  }

  override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
  }

  @IBAction func onOffButtonTapped(_ sender: Any) {
    buttonIsSelected = !buttonIsSelected
    updateOnOffButton()
  }

  func updateOnOffButton() {
    if buttonIsSelected {
      onOffButton.backgroundColor = UIColor.blue
    }
    else {
      onOffButton.backgroundColor = UIColor.white
    }
  }

}

关于ios - Swift 3-基于按钮状态的If else语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42103738/

10-11 23:07
查看更多