首页 > 解决方案 > Swift Quiz App 选项按钮背景更改

问题描述

我的模型:

struct MotorModel : Codable {
    let q : String
    let a : [String]
    let correctAnswer : String
}

和测验大脑:

struct QuizBrain : Codable {
    
    var questionNumber = 0
    
    var quiz = [
        
        MotorModel(q: "Aşağıdakilerden hangisi araçta fazla yakıt tüketimine sebep olur?", a: ["A) Bujilerin yeni olması","B) Yakıt borularının uzun olması","C) Depodaki yakıt seviyesinin düşmesi","D) Tavsiye edilmeyen araç lastiği kullanılması"], correctAnswer: "D) Tavsiye edilmeyen araç lastiği kullanılması"),

 MotorModel(q: "Benzinli motorlar hangi prensibe göre çalışır?", a: ["A) Sıkıştırılmış hava üzerine mazot püskürtme","B) Sıkıştırılmış mazot-hava karışımını bujiyle ateşleme","C) Sıkıştırılmış benzin-hava karışımını bujiyle ateşleme","D) Sıkıştırılmış benzin-hava karışımını enjektörle ateşleme"], correctAnswer: "C) Sıkıştırılmış benzin-hava karışımını bujiyle ateşleme")
}

我的回答函数:

  func checkAnswer(userAnswer : String)-> Bool {
        if userAnswer == quiz[questionNumber ].correctAnswer {
            return true
        }else{
            return false
        }
    }

我对屏幕上问题的回答:

  @objc func TappedButton(_ sender : UIButton){
        
        let userAnswer = sender.currentTitle!
        
        let userRightGot = quizBrains.checkAnswer(userAnswer: userAnswer)
        
        
        if userRightGot {
            sender.backgroundColor = .green
            
            score += 1
            scoreLabel.text = "\(score)"
        }else{
            
            sender.backgroundColor = .red
            
            
            failScore += 1
            failScoreLabel.text = "\(failScore)"
        }
}

当我在这里点击我想做的错误选项时,正确答案的背景图片是绿色的。 在此处输入图像描述

标签: swiftuibutton

解决方案


当用户点击按钮时,您的TappedButton(_ sender: UIButton)函数将被调用。是用户按下的sender具体值。UIButton

如果要更改其他按钮的背景颜色,例如用户选择错误选项时的正确按钮,则需要使用@IBOutlet变量引用该按钮并手动更改其颜色。这将需要一些逻辑来确定哪个按钮是“正确”按钮。


推荐阅读