123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- import UIKit
- class ViewAnswersViewController: UIViewController {
-
- @IBOutlet var answersTableView: UITableView!
- @IBOutlet var continueButton: UIButton!
-
- var viewModel = ViewAnswersViewModel()
-
- var answersModel = [AssessmentResultModel]()
- var userId = Int()
- var sessionId = String()
- var assessmentId = Int()
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
-
- answersTableView.delegate = self
- answersTableView.dataSource = self
-
-
- answersTableView.rowHeight = UITableView.automaticDimension
- answersTableView.estimatedRowHeight = 60
- }
-
- override func viewWillAppear(_ animated: Bool) {
- getSubmittedAnswers()
- }
-
- func getSubmittedAnswers() {
- if Reachability.isConnectedToNetwork() {
- viewModel.getSubmittedAnswers(userId: userId, sessionId: sessionId, assessmentId: assessmentId) {
-
- self.answersModel = self.viewModel.answersModel
- print(self.answersModel)
- self.answersTableView.reloadData()
- }
- } else {
- Alert.showInternetFailureAlert(on: self)
- }
- }
-
-
-
-
-
- @IBAction func continueAction(_ sender: Any) {
- let vc = self.storyboard?.instantiateViewController(withIdentifier: "NewAssessmentViewController") as! NewAssessmentViewController
- self.navigationController?.pushViewController(vc, animated: true)
- }
-
- }
- extension ViewAnswersViewController: UITableViewDelegate, UITableViewDataSource {
-
-
- func numberOfSections(in tableView: UITableView) -> Int {
- return answersModel.count
- }
-
- func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
-
- let choiceCount = answersModel[section].options?.count ?? 0
- return choiceCount + 1
- }
-
- func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let answer = answersModel[indexPath.section]
-
- if indexPath.row == 0 {
- guard let cell = tableView.dequeueReusableCell(withIdentifier: "ViewAnswerQuestionTableViewCell", for: indexPath) as? ViewAnswerQuestionTableViewCell else {
- return UITableViewCell()
- }
-
- cell.questionLabel.text = "Q. \(answer.question ?? "")"
-
- return cell
- } else {
- guard let cell = tableView.dequeueReusableCell(withIdentifier: "ViewAnswerOptionsTableViewCell", for: indexPath) as? ViewAnswerOptionsTableViewCell else {
- return UITableViewCell()
- }
-
- let options = answer.options?[indexPath.row - 1].trimmingCharacters(in: .whitespaces)
- let selectedAnswer = answer.selectedAnswers?[0].trimmingCharacters(in: .whitespaces) as? String ?? ""
- let correctAnswer = answer.answers?[0] as? String ?? ""
-
- if options == selectedAnswer && options == correctAnswer {
- cell.choiceLabel.textColor = #colorLiteral(red: 0.4666666687, green: 0.7647058964, blue: 0.2666666806, alpha: 1)
- cell.dotImageView.tintColor = #colorLiteral(red: 0.4666666687, green: 0.7647058964, blue: 0.2666666806, alpha: 1)
- } else if options != selectedAnswer && options == correctAnswer {
- cell.choiceLabel.textColor = #colorLiteral(red: 0.4666666687, green: 0.7647058964, blue: 0.2666666806, alpha: 1)
- cell.dotImageView.tintColor = #colorLiteral(red: 0.4666666687, green: 0.7647058964, blue: 0.2666666806, alpha: 1)
- } else if options == selectedAnswer && options != correctAnswer {
- cell.choiceLabel.textColor = #colorLiteral(red: 0.7450980544, green: 0.1568627506, blue: 0.07450980693, alpha: 1)
- cell.dotImageView.tintColor = #colorLiteral(red: 0.7450980544, green: 0.1568627506, blue: 0.07450980693, alpha: 1)
- } else {
- cell.choiceLabel.textColor = UIColor.black
- cell.dotImageView.tintColor = UIColor.black
- }
-
- cell.choiceLabel?.text = answer.options?[indexPath.row - 1]
-
- return cell
- }
- }
-
-
-
- func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
- return 60.0
- }
-
-
- func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
- let answer = answersModel[indexPath.section]
-
- if indexPath.row == 0 {
-
- let cell = tableView.dequeueReusableCell(withIdentifier: "ViewAnswerQuestionTableViewCell") as! ViewAnswerQuestionTableViewCell
-
-
- cell.questionLabel.text = "Q. \(answer.question ?? "")"
-
-
- let labelSize = cell.questionLabel.sizeThatFits(CGSize(width: cell.questionLabel.frame.size.width, height: CGFloat.greatestFiniteMagnitude))
-
- return labelSize.height + 10
- } else {
- let cell = tableView.dequeueReusableCell(withIdentifier: "ViewAnswerOptionsTableViewCell") as! ViewAnswerOptionsTableViewCell
- cell.choiceLabel.text = answer.options?[indexPath.row - 1]
-
-
- let labelSize = cell.choiceLabel.sizeThatFits(CGSize(width: cell.choiceLabel.frame.size.width, height: CGFloat.greatestFiniteMagnitude))
- return labelSize.height + 10
- }
- }
-
- }
|