我正在使用一个带有测验的应用程序,在子视图上有 4 个 UIButtons(自定义类型),这是自定义视图,即使我设置了目标,也没有一个按钮可以识别动作。我必须以编程方式进行。
我尝试设置 isUserInteractionEnabled 但它不起作用。按钮在视图上,尊重边界。
在这里,viewDidLoad
来自InitialViewController
:
override func viewDidLoad()
{
super.viewDidLoad()
self.questionView?.firstanswer!.isEnabled = true
self.questionView?.firstanswer!.addTarget(self, action: #selector(self.answerTheQuestion), for: UIControl.Event.touchUpInside)
self.questionView?.secondanswer!.addTarget(self, action: #selector(self.answerTheQuestion), for: UIControl.Event.touchUpInside)
self.questionView?.thirdanswer!.addTarget(self, action: #selector(self.answerTheQuestion), for: UIControl.Event.touchUpInside)
self.questionView?.fourthanswer!.addTarget(self, action: #selector(self.answerTheQuestion), for: UIControl.Event.touchUpInside)
}
下面是动作函数:
@objc func answerTheQuestion(_sender:UIButton) {
print("aa")
if let questionsAnswers = self.quizzes?.quizzes[self.randomNumber!]["questions"] as? [[String:Any]] {
if (questionsAnswers[self.randomQuestion!]["question"] as? String) != nil {
if let correctAnswer = questionsAnswers[self.randomQuestion!]["correct_answer"] as? String {
if _sender.titleLabel?.text == correctAnswer {
_sender.backgroundColor = UIColor.green
} else {
_sender.backgroundColor = UIColor.red
}
}
}
}
}
视图和按钮添加正常,只有点击不起作用。
答案错误时应为红色,正确时为绿色。问题和其他所有内容都正常添加,但它甚至不会在目标函数的开头打印“aaa”。请帮忙,谢谢!!