swift - 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)"
}
}
当我在这里点击我想做的错误选项时,正确答案的背景图片是绿色的。 在此处输入图像描述
解决方案
当用户点击按钮时,您的TappedButton(_ sender: UIButton)
函数将被调用。是用户按下的sender
具体值。UIButton
如果要更改其他按钮的背景颜色,例如用户选择错误选项时的正确按钮,则需要使用@IBOutlet
变量引用该按钮并手动更改其颜色。这将需要一些逻辑来确定哪个按钮是“正确”按钮。
推荐阅读
- google-apps-script - 如何使用谷歌脚本抓取带有分页的网站?
- c# - 如何在视图中获取 Ienumerable 的属性?
- asp.net - 使用新的“System.Text.Json”类对 System.Data.DataTable 进行序列化时出现异常(Asp.net core 3.0 preview 8)
- python - 回滚后“此事务已关闭”
- python - 如何将英特尔实感图像保存在列表中 (pyrealsense2)
- gurobi - Gurobi 警告和最优值不一致 [一些整数变量的值大于最大支持值 (2000000000)]
- python - 从 Python 中的函数返回值
- python - 有没有更快的方法来读取以下熊猫数据框?
- c++ - 一旦窗口关闭,将 sf::Text 绘制到窗口就会崩溃程序
- javascript - 具有输入范围的 HTML 音频可访问性