我对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/