首页 > 解决方案 > 用结构配置两个按钮

问题描述

我正在制作一个带有简单问题的简单测验应用程序,我创建了带有名称和两个答案的结构(显然其中一个是正确的),但我不知道如何配置这些按钮,这是任何解决方案都将适用的代码

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)
    }

标签: iosswiftuikit

解决方案


你错过了很多代码。您需要阅读有关 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
}

    

推荐阅读