ios - 用结构配置两个按钮
问题描述
我正在制作一个带有简单问题的简单测验应用程序,我创建了带有名称和两个答案的结构(显然其中一个是正确的),但我不知道如何配置这些按钮,这是任何解决方案都将适用的代码
struct EasyQuestions {
var question: String
var answers: [Answers]
var hint: String
var correctAnswer: String
}
struct Answers {
var answer1:String
var answer2:String
}
var questions:[EasyQuestions] = [
EasyQuestions(question: "1 + 1", answers: [Answers(answer1: "5", answer2: "2")], hint: "3-1", correctAnswer: "2"),
EasyQuestions(question: "2 + 2", answers: [Answers(answer1: "1", answer2: "4")], hint: "5-1", correctAnswer: "4")
]
@IBOutlet weak var Question: UILabel!
@IBOutlet weak var button1: UIButton!
@IBOutlet weak var button2: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
configure(with: questions[0])
}
func configure(with question: EasyQuestions){
self.Question.text = question.question
self.button1.setTitle(question.answers, for: .normal)
self.button2.setTitle(answer.answer2, for: .normal)
}
解决方案
你错过了很多代码。您需要阅读有关 UIButton 类的信息,例如,您不能使用数组设置标题。你需要在那里有字符串。self.button1.setTitle(question.answers, for: .normal)
您需要添加触摸响应器以对用户的点击做出反应。
您可能想确定选择了哪个答案,因此您可以使用 UIButton 的标签字段并为其分配答案 ID。
您可能还想显示多个问题,因此您需要实现一个显示按钮数组的循环。
这是显示按钮 4 个按钮的循环示例:
let buttons: [UIButton] = []
for i in 0..<4 {
buttons.append(UIButton)
buttons[i].frame = CGRect(x: x, y: y, width: buttonWidth, height: buttonHeight)
buttons[i].tag = i
buttons[i].addTarget(self, action: #selector(buttonPressed), for: .touchUpInside)
view?.addSubview(buttons[i])
}
@IBAction func buttonPressed(_ sender: UIButton) {
let pickedButtonId: Int = sender.tag
// do something with button
}
推荐阅读
- codenameone - 在 Codenameone Simulator 中找不到组件检查器工具
- c# - Can I Return DTOs From DAL
- r - RMarkdown Beamer make slide titles and add figures in loop
- python - 如何从 csv 文件中获取一组标签?
- javascript - JavaScript 不会在浏览器中呈现
- jupyter-notebook - How to toggle output from cells in jupyter notebook (in a way that can be exported to html)?
- python - 如果条件满足,则在 Pandas DataFrame 中配对行
- css - Change the Opacity of a background-image
- java - (Java) 在 ArrayList 中的其他两个元素之间添加一个元素
- moshi - Moshi: PolymorphicJsonAdapterFactory is it possible to get the type in withDefaultValue?